【问题标题】:Creating an Excel SpreadsheetML in code. (Without Excel!)在代码中创建 Excel SpreadsheetML。 (没有 Excel!)
【发布时间】:2009-08-27 02:56:08
【问题描述】:

使用 Excel 2003 及更高版本,可以使用 SpreadsheetML 格式生成仅包含 XML 样式表和 XML 数据文件的 Excel 电子表格。我在一些项目中使用过它并且效果很好,即使它不容易做到。 从 Microsoft 下载站点,我下载了构成 SpreadsheetML 的 XSD,在我的无知中,我尝试将它们转换为 C# 类。不幸的是,xsd.exe 对这些架构文件不太满意,所以我往往会被卡住。 我不需要 SpreadsheetML 的替代解决方案,因为它可以很好地满足我的需求。只是如果我的代码不是用复杂的样式表编写的,我的团队成员会更容易维护它。 (成为贵公司唯一的 XSLT 专家真是太糟糕了。)

我只想知道是否有人在不使用第三方代码和 XSLT 的情况下使用 .NET 成功创建了 Excel SpreadsheetML 文件。如果你这样做了,你是如何解决这个问题的?

(或者我只需要了解如何在 XML.Linq 中为 XML 元素添加名称空间...)

【问题讨论】:

  • 你不能只用 COM 做这个吗?只是想知道。
  • 好吧,代码是 Web 服务器的一部分,并且该 Web 服务器上没有安装 Office,他们也不会在该 Web 服务上安装 Office 或 Excel。顺便说一句,使用 XSLT 可以正常工作并创建我想要的结果。但由于我是公司唯一的 XSLT 专家,我想提供一个其他团队成员可以理解的解决方案。

标签: c# excel


【解决方案1】:

前段时间我用 XmlDocument 和朋友创建了一个 SpreadsheetML 文档,里面有公式、格式等,所以如果有点繁琐也是可以的。

这个MSDN page 是您开始在 LINQ 中使用命名空间所需要的。

【讨论】:

  • 这正是我想要的! :-) 至少,我的团队成员在 C# 方面的经验比 XSLT 多,因此它变得有点繁琐也没关系。
【解决方案2】:

我已经使用了这个库,甚至还有一个工具可以从现有的 excel 文件中生成您需要的 C# 代码。 http://www.carlosag.net/Tools/ExcelXmlWriter/

【讨论】:

  • 有趣,不幸的是第三方代码。不过,好的提示! +1
【解决方案3】:

几周前我开始处理类似的问题,但由于一些迫在眉睫的问题,我不得不把它放在次要位置。

当时我提到了这个http://www.codeproject.com/KB/aspnet/ExportClassLibrary.aspx?fid=113399&df=90&mpp=25&sort=Position&tid=2609600

我真的无法开始使用它,但计划很快重新开始。希望链接对您有所帮助。

干杯

【讨论】:

  • 不幸的是,我生成的电子表格不仅仅是转换为 Excel 的数据列表。它包含几个公式和一些格式供用户在下载后立即使用。它的唯一目的是让用户轻松验证服务器中的数据。相同的数据也通过 Web 服务提供给客户端应用程序。只是 Excel 工作表更容易验证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多