在没有为 Wpf 产品安装 MS Office 的情况下导出到 Excel

Posted

技术标签:

【中文标题】在没有为 Wpf 产品安装 MS Office 的情况下导出到 Excel【英文标题】:Exporting to Excel without MS office installed for Wpf Product 【发布时间】:2013-01-15 14:41:49 【问题描述】:

我有一个小型 wpf 产品,需要在客户端机器上未安装 excel 的情况下将数据导出到 excel。如何在 C# 中实现。导出后,此 excel 可以通过 Open Office 打开。我想要的只是将 excel 文件保存到客户端硬盘。即使没有安装excel他应该能够保存文件,没有excel他可能无法读取它但应该能够保存。我不想任何第 3 方或其他一些开放的 xmls。 最近我下载了一个产品,它能够在没有安装 excel 的情况下导出到 excel 并且能够用 open office 打开它。

当我检查他们的二进制文件时,它们只包含 office.dll、Microsoft.Vbe.Interop.dll 和 Microsoft.Office.Interop.Excel.dll。我想知道他们如何使用这些 dll 进行管理。

我已经为此编写了代码,但是在未安装 excel 时它会中断。

我已经阅读了许多开放的 xml 和其他与此相关的内容,但并不满意。 我的要求太简单了,只是将数据表数据导出到excel,不读回数据,也不用excel做花哨的操作。

请给我建议和链接将不胜感激。 提前致谢

【问题讨论】:

写一个逗号分隔值文件,用excel读取。 Steve 的选择很好,如果您需要,ClosedXML 对我有用closedxml.codeplex.com 我了解 Sateesh 试图在这里完成的工作。也许您还需要补充一点,将要使用该应用程序的人并不了解它是如何工作的,为这样的用户创建一个 csv 文件只会使他的眉毛闪烁,因为他不知道如何处理它。与创建新的 xml 文件相同。对于程序员来说,重要的是要知道不编程的用户永远不会理解我们大多数时候认为非常逻辑的东西。 @Schuere 真的是 CSV 令人困惑吗?一个 .csv 文件有一个 Excel 图标,如果你双击它会在 Excel 中打开。 @Blam,我只是指没有安装 Office 的用户,而他不会看到 Excel 图标。我的帖子是针对那个群体的。对于给您带来的不便,我深表歉意。 【参考方案1】:

要么使用 CSV 格式,要么您可能喜欢使用 EPPlus 库。查看类似答案here

【讨论】:

【参考方案2】:

xslt 变换也能行。我用它来导出 wpf datagrid 数据。

【讨论】:

【参考方案3】:

您可以使用 CSV、XML 或 ADO

How To Use ADO.NET to Retrieve and Modify Records in an Excel Workbook With Visual Basic .NET

【讨论】:

以上是关于在没有为 Wpf 产品安装 MS Office 的情况下导出到 Excel的主要内容,如果未能解决你的问题,请参考以下文章

MS Office Word VSTO“按需加载”

c# 只安装WPF环境 导出excel表格 问题

ms office与office有区别吗

为啥我的电脑装不了office软件,每次安装时会提示“已经安装了该产品的另一个版本,无法继续安装此版本

有没有办法像使用 C# 的 MS Office Excel 一样创建/读取 LibreOffice 电子表格?

MS Office 2003 安装了哪些 Jet 提供程序?