2016-07-04 65 views
0

在將Datatable導出到Excel時,一些列會落入新行。我不知道問題是什麼。我的代碼如下:datatable to Excel in 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

數據表中有多少列?聽起來好像太多了。 –

+0

我在數據表中有35列......第18列後,它進入新行。 – user123

+0

請從代碼包裝器中移動文本的第一行(unindent it)。此外,你的意思是「但確切的問題」或「但沒有得到確切的問題」是正確的? – YakovL

回答

1

您的DataRow數據似乎有可能包含換行符,這就是換行符可能出現在您的數據中的原因之一。

交換:

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

爲:如果我做了正確的診斷它

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

可能會解決問題。