300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Java导出Excel提示文件损坏_导出Gridview到Excel成功但文件已损坏?

Java导出Excel提示文件损坏_导出Gridview到Excel成功但文件已损坏?

时间:2021-04-15 19:50:29

相关推荐

Java导出Excel提示文件损坏_导出Gridview到Excel成功但文件已损坏?

我需要以编程方式创建一个包含3个工作表的Excel电子表格 .

对于Sheet1,我正在尝试导出一个Gridview ...及其所有格式...而不使用Http.Response这样做,因为该技术强制文件'保存/另存为'请求框弹出,这似乎停止所有进一步的代码执行 .

如果我能够成功直接将Gridview写入Excel工作簿,我应该能够继续我的编码例程,然后重新打开文件并以编程方式添加表2和3 .

这段代码有点......有点'......差不多!

private void ExportGridView(GridView myGrid)

{

System.IO.StringWriter sw = new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);

// Render grid view control.

myGrid.RenderControl(htw);

// Write the rendered content to a file.

string renderedGridView = sw.ToString();

File.WriteAllText("C:\\TimeSheets\\ExportedFile.xlsx", renderedGridView);

}

如果我停止编码...并导航到TimeSheets目录,我看到“ExportedFile.xlsx”显示为“Microsoft Office Excel 工作簿”,我的Excel程序打开并显示格式正确的Gridview没有问题 .

但是,如果我继续在C#中编码并尝试在我的代码隐藏中打开同一个文件,我会收到一个“文件包含损坏的数据”错误 .

如果,在使用Excel查看“ExportedFile.xlsx”文件时,我执行“另存为”,我看到文件名放在引号中,文件类型默认为另存为网页htm / html . 如果我通过从文件名中删除引号并将文件类型设置为“.xlsx”来重置这些值...那么,这个结果文件可以在我的代码隐藏中读取而不会紧张 .

谁能为我提供解决方案?

乔 .

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。