ASP.NET 导出EXCEL时如何不把一些不是EXCEL的符号一起导出到EXCEL?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET 导出EXCEL时如何不把一些不是EXCEL的符号一起导出到EXCEL?相关的知识,希望对你有一定的参考价值。

ASP.NET 导出EXCEL时如何不把一些不是EXCEL的符号一起导出到EXCEL?
因为再把这些导出的EXCEL重新做导入的时候会出错
因为导出来的.xls不是标准的excel文件,所以重新导入的时候就会出错

参考技术A 你可以先建立一个 Excel 模板A!然后在导出的时候 用代码复制这个模板B 再B模板里插入你要导出的数据 然后把B导出 出来 结束后再把B模板删除!这个导出的就是标准版的Excel 另外如果你的数据库类型分很多的话 建议把 Excel模板A 设置成文本模式 这样在导入的时候就不容易出错 参考技术B 把你导出的execle文件另存为以下就可以直接导入了

使用 Asp.net s-s-rS 2008 (RDLC) 命名工作表以导出到 Excel

【中文标题】使用 Asp.net s-s-rS 2008 (RDLC) 命名工作表以导出到 Excel【英文标题】:Naming of Sheets using Asp.net s-s-rS 2008 (RDLC) for export to Excel 【发布时间】:2013-01-29 06:55:57 【问题描述】:

我正在开发一个 VS 2008 asp.net webforms 应用程序,其中包含现有的 RDLC(客户端文件,不是 RDL 服务器端文件)。

问题是在导出到 excel 时,所有工作表都没有正确命名,即 Sheet1、Sheet2 等。我在 RDL 的 SQL Server 2008 R2 功能上找到了很多导出数据的示例,但是我需要RDLC 解决方案?

有谁知道如何“修复”此问题或进行某种后处理以重命名选项卡,以便客户最终不会看到 Sheet1、Sheet2、Sheet3 等?

    应用程序正在选择 RDLC 文件的路径 添加数据源 选择 xls 是否所有响应

我看到了这个 *** 链接 How to get named excel sheets while exporting from s-s-rS,但是:

    不能做宏 无法导出为 SSML 我不使用 RDL / SQL Server 2008 R2 s-s-rS,因此其他答案会误导使用 RDLC 的人

【问题讨论】:

任何有 NPOI 或 Microsoft.Office.Interop.Excel 经验的人?这些似乎是合理的集成解决方案。 权威答案500分。谢谢 【参考方案1】:

RDLC 报告的版本不支持工作表重命名。我猜你不能升级。所以这里有一个解决方法:将报告正常保存到文件中。然后使用 Microsoft.Office.Interop.Excel 或任何其他 Excel 库再次打开它以重命名工作表。一旦你这样做保存,你就完成了。

using Excel = Microsoft.Office.Interop.Excel; 


Excel.ApplicationClass xl=new Excel.ApplicationClass();
    Excel.Workbook xlBook;
    Excel.Worksheet xlSheet;
    string filePath = Server.MapPath(@"\report.xls");
    xlBook = (Workbook)xl.Workbooks.Open(filePath,Type.Missing,
      Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing
     ,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);
    xlSheet = (Worksheet)xlBook.Worksheets.get_Item(1);
    xlSheet.Name = "New Sheet Name";
    xlBook.Save();
    xl.Application.Workbooks.Close();

如果这个库不适合您,您可以使用的不同库列表:免费库 1. 关闭 XML 库 - http://closedxml.codeplex.com/documentation 2. 打开 XML SDK - http://msdn.microsoft.com/en-us/library/bb448854.aspx 3. NOPI - http://npoi.codeplex.com/ 4. CarlosAG - http://www.carlosag.net/Tools/ExcelXmlWriter/

付费图书馆 5. 电子表格齿轮 6.智能XLS 7.办公室作家 8. 尖顶

【讨论】:

我尝试绕过 COM 访问错误,但随后出现“无法找到文件”...或其他问题,例如被锁定(即使 Excel 已关闭)。 @lcarter 请帮助清理一些事情以获取过去的权限,因为我还没有让它工作。我看到有些人使用 Interop on 而其他人则使用 NPOI。 谢谢,毕竟这是我一直在寻找的东西......与互操作。希望设置起来更容易,因为很多人都有 SHEET1 等问题。 所以我最终改用 NPOI 免费库,效果很好npoi.codeplex.com【参考方案2】:

我会升级到 RDL 2010 架构 - 它支持 Excel 命名表(以及其他有用的增强功能):

http://msdn.microsoft.com/en-us/library/ee960138.aspx

【讨论】:

我没有亲自做过。通常要升级报表文件,您只需在报表设计器 (VS) 中打开它。【参考方案3】:

你做不到。

http://social.msdn.microsoft.com/forums/en-US/sqlreportingservices/thread/54caf25b-b17b-474c-aa47-fc884f90af03

http://go4answers.webhost4life.com/Example/reportviewer-eport-excel-naming-sheets-157612.aspx

http://forums.asp.net/post/4140154.aspx

这可能有助于使用 excels xml 方言进行后期处理:

http://spacefold.com/lisa/post/Changing-the-Sheet-names-in-SQL-Server-RS-Excel-QnD-XSLT.aspx

【讨论】:

如果您知道还有其他方法可以使用它们。你怎么知道我不是一个经验丰富的专业人士,而最好的证明方式是使用上面的参考资料?如果我自己写了与上述类似的答案,或者在互联网上反刍,那就不那么专业了,因为没有给出任何证据,这只是我的话。 我重复我的专业回答,你将无法升级到 RDL。 抱歉,不是要攻击你,但我明确表示“2. 无法导出为 SSML”,但您显示了 spacefold.com/lisa/post/… 的 URL,其中的“ SSML”所以我说,你应该假设我不想要那个,我发现那篇文章对于拥有这个百万美元项目的十亿美元公司的客户来说是不可接受的。 500 分是给 1. 解决问题或 2. 显示解决问题的代码的人。谢谢 @TomStickel - 请不要侮辱在这里试图帮助你的人。你的cmets是彻头彻尾的辱骂,我已经删除了它们。这不是鼓励人们回答您的问题的方式。 @BradLarson 我正在寻找权威和专业的回复。如果答案显然不专业并且只是快速的谷歌搜索,那么它没有帮助。

以上是关于ASP.NET 导出EXCEL时如何不把一些不是EXCEL的符号一起导出到EXCEL?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net中,如何实现将page页面各个空间的属性值,导出下载到一个word或excel中

如何使用 c# 将 JQgrid 数据导出到 Excel?

如何在 ASP.NET 中执行导入导出到 Excel 功能?

如何在不重新加载页面的情况下使用 ASP.NET MVC 5 将数据导出到 Excel?

ASP.NET 把数据库中的数据查询出来后导出到Excel。

如何在asp.net mvc中将Webcontrol表导出到excel