2016-07-04 3 views
0

При экспорте Datatable в Excel некоторые столбцы попадают в новую строку. Я не знаю, в чем проблема. Мой код ниже:datatable to Excel в C#

string attachment = "attachment; filename=Test.xls"; 
Response.ClearContent(); 
Response.AddHeader("content-disposition", attachment); 
Response.ContentType = "application/vnd.ms-excel"; 
string tab = ""; 
foreach (DataColumn dc in transposedTable.Columns) 
{ 
    Response.Write(tab + dc.ColumnName); 
    //tab = "\t"; 
} 
Response.Write("\t"); 
int i; 
foreach (DataRow dr in transposedTable.Rows) 
{ 
    Response.Write("\n"); 
    tab = ""; 
    for (i = 0; i < transposedTable.Columns.Count; i++) 
    { 
     Response.Write(tab + dr[i].ToString()); 
     tab = "\t"; 
    } 
    Response.Write("\t"); 
} 
Response.End(); 

Я пробовал много способов, но не получил точной информации. Является ли проблема с excel в машине или с моим кодом?

+0

Сколько столбцов находится в вашем datatable? Похоже, их слишком много. –

+0

У меня есть 35 столбцов в datatable ... После 18-го столбца он выходит на новую строку. – user123

+0

Пожалуйста, перенесите первую строку текста из оболочки кода (отмените ее). Кроме того, вы имеете в виду «но получили точную проблему» или «но не получили точной проблемы»? – YakovL

ответ

1

Возможно, ваши данные DataRow содержат символы новой строки, это одна из причин, почему новые строки могут появляться в ваших данных.

Перекачка:

Response.Write(tab + dr[i].ToString()); 

Для:

string replacement = Regex.Replace(dr[i].ToString(), @"\t|\n|\r", ""); 
    Response.Write(tab + replacement); 

Может решить эту проблему, если я диагностировать его правильно.