0

以下のコードに示すように、データテーブルをエクスポートしました。大きなデータをエクスポートするときは問題なく動作しますが、xls ファイルを開こうとすると、次のエラーが表示されます。

「ファイル名.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();
4

1 に答える 1

0

Excel 2010以降(2007についてはわかりません)を使用している場合、拡張子をXLSに設定しても、ファイルはXLSXとして保存されます。拡張子を XLSX に変更すると問題ありません。それ以外の場合、Excel は拡張子とファイル構造の違いを検出し、上記のメッセージを表示します。

于 2013-04-13T18:00:06.673 に答える