2016-07-04 4 views
0

데이터 테이블을 Excel로 내보내는 동안 일부 열이 새 행에 들어가는 동안. 나는 그 문제가 뭔지 모른다. 내 코드는 다음과 같습니다.Excel에서 데이터 테이블로 변환 #

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(); 

저는 여러 가지 방법을 시도했지만 정확한 문제는 없었습니다. 컴퓨터 또는 코드에 문제가 있습니까?

+0

데이터 테이블에 몇 개의 열이 있습니까? 너무 많은 것 같은데. –

+0

나는 datatable에 35 개의 컬럼을 가지고 있습니다 ... 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); 

이 문제를 해결할 수 있습니다.

관련 문제