Используя c#, есть ли способ кодировать символы (на другом языке) и экспортировать данные из DataTable в Excel одновременно - PullRequest
0 голосов
/ 13 марта 2020

У меня возникла проблема при кодировании данных и экспорте данных в Excel. У меня есть данные в моей DataTable. В методе экспорта в Excel я пробовал разные способы кодирования данных, некоторые из них: " StreamWriter wr = new StreamWriter (@path, false, new UTF8Encoding (true)); " ИЛИ " StreamWriter wr = новый StreamWriter (@path, true, Encoding.UTF8); ". Он успешно закодировал данные моего DataTable, но эта строка кода объединила данные из разных столбцов в один столбец.

И если я изменю вышеприведенную строку кода как «StreamWriter wr = new StreamWriter (@path); », затем при экспорте в Excel сохраняет данные в соответствующих столбцах и строках, но затем не кодирует данные и добавляет некоторые другие символы с помощью данные. Хотя я понимаю, что, поскольку я не использую кодирование UTF8, это является причиной, а не кодированием.

Итак, пожалуйста, дайте мне лучшее решение для моей проблемы, чтобы я мог успешно кодировать символы на другом языке, а также экспортировать данные в Excel с данными, экспортируемыми в соответствующие столбцы и соответствующие строки и ячейки.

Найдите приведенный ниже фрагмент кода, который я использовал для выполнения вышеуказанной задачи:

StreamWriter wr = new StreamWriter(@path, true, Encoding.UTF8);
for (int i = 0; i < dataTable.Columns.Count; i++)
{
   wr.Write(dataTable.Columns[i].ToString().ToUpper() + "\t");
}
wr.WriteLine();
for (int i = 0; i < (dataTable.Rows.Count); i++)
{
   for (int j = 0; j < dataTable.Columns.Count; j++)
   {
     if (dataTable.Rows[i][j] != null)
     {
       wr.Write(Convert.ToString(dataTable.Rows[i][j]) + "\t");
     }
     else
     {
      wr.Write("\t");
     }
   }
    wr.WriteLine();
 }
wr.Close();
...