【问题标题】:How can I pass an Excel created with XML to PDF MVC如何将使用 XML 创建的 Excel 传递给 PDF MVC
【发布时间】:2015-03-05 12:25:57
【问题描述】:

我需要从使用 XML 创建的 Excel 创建 PDF。我的应用程序基于 MVC 4.0。搜索我找到了 ITextSharp 但我找不到代码示例或类似的东西。

如何使用 ITextSharp 从 Excel 导出为 PDF?

【问题讨论】:

  • 你用什么来解析 XLS 文件? iText 不接受 XLS 文件,因此您需要一个 XLS 解释器(如果 C# 存在,则类似于 Apache POI)。
  • 是一个 XLSX 文件,我使用 OpenXML 将数据插入到文件中。
  • 当我说 XLS 时,我也暗示了 XLSX。我的反问仍然存在:您将使用什么来解析 XLSX 文件? iText 不解释 XLSX 文件。您将需要 Apache POI 之类的东西(如果 C# 存在的话)。

标签: asp.net-mvc pdf itextsharp openxml


【解决方案1】:

首先,将程序与文件格式和 API 分开。 Excel 是一个桌面电子表格程序。 XLS 和 XLSX 是用于存储电子表格信息的二进制文件格式。 Open XML 是一个广泛的主题,但通常是指 Microsoft 为最新版本的 Office 创建的压缩 XML 文件格式或用于与这些文件交互的 .Net API。

如果您想将 Excel 文档保存为 PDF 文件,则需要automate Excel

如果您想将 XLS/XLSX 文件转换为 PDF,那么您需要一个翻译层,而 iTextSharp 对 XLS 或 XLSX 文件格式的了解为零。 XLS spec 是 1,185 页,XLSX spec 是 299 页加上通用 Open XML 概念的参考,PDF 1.7 spec(您可能应该获得 ISO 32000)是 1,310 页,所以我建议探索第三部分库取而代之的是(我也没有任何建议)。

但是,如果您在 C# 中以编程方式遍历结构化数据,我建议您在创建 XLSX 文件的同时创建 PDF。 iTextSharp 有一个非常非常好的表格 API,可以自动设置列宽和高的格式,因此您不必担心(除非您愿意)。您真的应该能够使用与您的 XLSX 代码相同甚至可能更少的代码使用 iTextSharp 创建 PDF。快速搜索iTextSharp table 应该会给你很多选择。如果您的结构化数据是 GridView 或类似的东西,您甚至可以使用 ASP.Net 为您创建 HTML,并让 iTextSharp 将 that 解析为 PDF 命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    相关资源
    最近更新 更多