【问题标题】:Export DataTable to workbook将数据表导出到工作簿
【发布时间】:2013-04-14 02:00:06
【问题描述】:

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

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

【问题讨论】:

    标签: excel export


    【解决方案1】:

    如果您使用 Excel 2010 或更高版本(我不确定 2007),即使您将扩展名设置为 XLS,文件也会保存为 XLSX。将扩展名更改为 XLSX 应该没问题。否则 Excel 将检测扩展名和文件结构之间的差异,并显示上面的消息。

    【讨论】:

      猜你喜欢
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多