1

reportviewer でレンダリングおよび拡張しますが、これらのコードは古いファイル拡張子で拡張されます。たとえば、.xlsx で作成したいのですが、xls が作成されます。デフォルトの mimeType を変更するにはどうすればよいですか?

protected void ExportExcel_Click(object sender, EventArgs e)
{
    Warning[] warnings;
    string[] streamids;
    string mimeType;
    string encoding;
    string extension;
    string filename;

    byte[] bytes = ReportViewer1.LocalReport.Render(
       "Excel", null, out mimeType, out encoding,
        out extension,
       out streamids, out warnings);

    filename = string.Format("{0}.{1}", "ExportToExcel", "xls");
    Response.ClearHeaders();
    Response.Clear();
    Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
    Response.ContentType = mimeType;
    Response.BinaryWrite(bytes);
    Response.Flush();
    Response.End();
}
4

1 に答える 1

0

Excel 2007 以降では、MIME タイプが異なります

Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

Response.AppendHeader("content-disposition", "attachment; filename=" + filename);

参考:xlsxのコンテンツタイプ

また、Excelファイルの正しいコンテンツタイプは何ですか?

于 2013-09-06T12:09:35.730 に答える