2013-03-15 29 views
0

我已经导出了我的数据表,如下面的代码所示。它导出大数据时工作正常,但当我尝试打开xls文件时,它提示我此错误:将DataTable导出为工作簿

“Excel在filename.xls中发现无法读取的内容。是否要恢复此工作簿的内容?如果您信任此工作簿的来源,请单击是。“

DataTable exportTable = Record.GetAll(); 
     Workbook workbook = new Workbook(); 
     Worksheet sheet = new Worksheet("Test"); 

     for (int x = 0; x < exportTable.Columns.Count; x++) 
     { 
      sheet.Cells[0, x] = new Cell(exportTable.Columns[x].ColumnName.ToString()); 
     } 

     for (int i = 0; i < exportTable.Rows.Count; i++) 
     { 
      for (int j = 0; j < exportTable.Columns.Count; j++) 
      { 
       sheet.Cells[(i + 1), j] = new Cell(exportTable.Rows[i][j].ToString()); 
      } 
     } 

     workbook.Worksheets.Add(sheet); 

     workbook.Save(@"C:\temp1\Test.xls"); 

     System.IO.FileInfo file = new System.IO.FileInfo(@"C:\temp1\Test.xls"); 
     Response.ClearContent(); 
     Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); 
     Response.AddHeader("Content-Length", file.Length.ToString()); 
     Response.ContentEncoding = System.Text.Encoding.UTF8; 
     Response.ContentType = "application/ms-excel"; 
     Response.TransmitFile(file.FullName); 
     Response.End(); 

回答

0

如果您使用的是Excel 2010或以上(我不知道2007年左右),该文件将被保存为XLSX,即使你设置扩展到XLS。将扩展名更改为XLSX并且应该没问题。否则,Excel将检测到扩展名和文件结构之间的差异,并显示上面的消息。

相关问题