Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 下载的Excel在Microsoft'之后显示空白;安全更新_C#_Asp.net - Fatal编程技术网

C# 下载的Excel在Microsoft'之后显示空白;安全更新

C# 下载的Excel在Microsoft'之后显示空白;安全更新,c#,asp.net,C#,Asp.net,我使用下面的C代码通过GridView将表格值导出到excel文件 在Microsoft最近的安全更新[Microsoft excel 2010的安全更新kb3115322]之前,它一直运行良好 更新后,我无法查看Excel文件的内容。它显示空白的excel 卸载更新后,我可以查看Excel,但我需要通过C#代码找到解决方案 提前感谢。是的,因为Microsoft新的安全更新问题正在升级为当前的excel文件格式。因此,为了解决问题和快速解决问题,您应该使用csv(逗号分隔文件)而不是xls,这

我使用下面的C代码通过GridView将表格值导出到excel文件

在Microsoft最近的安全更新[Microsoft excel 2010的安全更新kb3115322]之前,它一直运行良好

更新后,我无法查看Excel文件的内容。它显示空白的excel

卸载更新后,我可以查看Excel,但我需要通过C#代码找到解决方案


提前感谢。

是的,因为Microsoft新的安全更新问题正在升级为当前的excel文件格式。因此,为了解决问题和快速解决问题,您应该使用csv(逗号分隔文件)而不是xls,这样excel应用程序将通过“,”分隔符打开csv

注意:我在Php应用程序中遇到了这个问题,通过使用PHPExcel库制作xls文件解决了这个问题。我希望您也能找到类似PHPExcel for C#的东西。


谢谢。请随意评论。

是的,因为Microsoft新的安全更新问题正在升级为当前的excel文件格式。因此,为了解决问题和快速解决问题,您应该使用csv(逗号分隔文件)而不是xls,这样excel应用程序将通过“,”分隔符打开csv

注意:我在Php应用程序中遇到了这个问题,通过使用PHPExcel库制作xls文件解决了这个问题。我希望您也能找到类似PHPExcel for C#的东西。


谢谢。请随意评论。

我遇到了同样的问题。我的解决方案是用ExcelPack重写所有Excel导出。我使用了XLSX,不再使用XLS

以防万一,你可以选择重写


我遇到了同样的问题。我的解决方案是用ExcelPack重写所有Excel导出。我使用了XLSX,不再使用XLS

以防万一,你可以选择重写


完成了任何基本调试,比如在记事本中打开xls文件以查看其中的内容?可能Excel没有显示任何内容,因为文件是空的。请将该内容保存在磁盘上,看看是否可以打开它。另一方面,Excel更新与导出的文件有什么关系,您将返回一个文件作为响应,是否使用Microsoft.Office.Interop.Excel?完成了任何基本调试,比如在记事本中打开xls文件,看看里面有什么?可能Excel没有显示任何内容,因为文件是空的。请将该内容保存在磁盘上,看看是否可以打开它。另一方面,Excel更新与导出的文件有什么关系,您将返回一个文件作为响应,是否使用Microsoft.Office.Interop.Excel?是的,当我将格式更改为.csv文件时,我能够打开。但它的格式不正确(对齐和外观)。如果有任何不更改文件格式的解决方案,那就太好了。只更改文件扩展名将不起作用,只需更改代码,使文件以csv格式lkie id、名称、城市1、Mahamadali、Palanpur 2、ABC、XYZ,然后以正确的格式打开。是的,当我将格式更改为.csv文件时,我能够打开。但它的格式不正确(对齐和外观)。如果有任何不更改文件格式的解决方案,那就太好了。只更改文件扩展名将不起作用,只需更改代码,使文件以csv格式lkie id、名称、城市1、Mahamadali、Palanpur 2、ABC、XYZ,然后以正确的格式打开。
Response.ContentType = "application/vnd.xls";

Response.AddHeader("content-disposition","attachment;filename="+filename+".xls");
ExcelPackage package = new ExcelPackage();
ExcelWorksheet ws = package.Workbook.Worksheets[1];

//header
ws.Cells[1, 1].Value = "Column1";
ws.Cells[1, 2].Value = "Column2";
ws.Cells[1, 3].Value = "Column3";
ws.Cells[1, 4].Value = "Column4";
ws.Cells[1, 5].Value = "Column5";

//content
int i = 1;

foreach (Item item in list)
{
    i++;

    ws.Cells[i, 1].Value = item.Prop1;
    ws.Cells[i, 2].Value = item.Prop2;
    // format datetime
    ws.Cells[i, 3].Value = item.Prop3.ToString("yyyy-MM-dd");
    ws.Cells[i, 4].Value = item.Prop4;
    ws.Cells[i, 5].Value = item.Prop5;
}

using (var memoryStream = new MemoryStream())
{
    response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    response.AddHeader("content-disposition", $"attachment; filename=Filename.xlsx");
    package.SaveAs(memoryStream);
    memoryStream.WriteTo(response.OutputStream);
    response.Flush();
    response.End();
}