【问题标题】:Modifying Excel spreadsheet with .NET使用 .NET 修改 Excel 电子表格
【发布时间】:2008-11-16 05:54:12
【问题描述】:

问题来了:

我必须使用 .NET 修改现有的 Excel 电子表格。电子表格非常复杂,我只需要在一些预定义的区域添加数据。

我正在调查我的选项,Excel 自动化/InterOp 是不可能的,因为我正在实现一个 ASP.NET 网站,而 Excel 可能没有安装在服务器上。从我在网上找到的资料来看,InterOp 在性能方面也是一个非常昂贵的解决方案。

由于原始电子表格的复杂性,也排除了创建 CSV 文件的可能性。

目前我倾向于 ADO.NET OleDb 解决方案,但我发现很少提及(Google 和 Stackoverflow.com),所以我有点担心:OldDb for Excel 有什么问题? 到目前为止,我在 MSDN 上能找到的唯一缺点是我无法使用公式创建单元格,但这对我来说真的不是问题。

我也考虑过 SSIS,但这只是基于我的假设,即您可以在生成电子表格时使用现有的 Excel 文件。我不知道这是否可能。

然后是 OpenXml。与 OldDb 相比,它似乎过于复杂,而且我还不确定我必须支持哪个旧 Excel 版本。

我错过了什么吗?还有其他选择吗?

【问题讨论】:

    标签: .net excel


    【解决方案1】:

    查看MyXls 用于读取和写入二进制 XLS 文件的 .NET 解决方案。

    【讨论】:

      【解决方案2】:

      在这种情况下,我通常倾向于不要弄乱复杂的电子表格,而是设置一个单独的数据文件,我会将复杂电子表格中的数据单元格链接到该文件。这比从外部更改复杂的电子表格更干净、更安全。

      如果这并不比您目前面临的替代方案更容易,那会让我感到惊讶。但是我还没有看到你的电子表格。

      【讨论】:

        【解决方案3】:

        我已经使用Aspose.Cells 来处理这种事情并取得了很好的成功。文档可能有点迟钝,但该产品似乎可以工作。它不需要您在服务器上安装 Excel,它适用于最新版本的 Excel(和以前的版本)。

        【讨论】:

          【解决方案4】:

          使用任何驱动程序(ODBC、OLEDB 等)将 Excel 用作 ISAM 数据库的问题是列的数据类型基于列中的前 8 行 - 这纯粹是邪恶的;例如:如果一列类似于 part# 并且前 8 个部分恰好是数字,那么对于该列中 part# 不是数字的任何单元格,您将获得 NULL。 (110000 与 111000-1 或 111000A)。这与您如何在 excel 中格式化列无关(即使您将列设置为文本)。

          我会尝试查找有关此内容的文档并进行更新。 这是一个:

          http://support.microsoft.com/kb/194124

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

          【讨论】:

            【解决方案5】:

            您仍然没有几个解决方案。 1) Excel 文件的第三方组件。 (我认为这是最痛苦和最可靠的解决方案) 2) 使用 html-table。


            1) 看看互联网 :) 2) excel 与 html-tables 配合得很好。 如果你生成这个 html:

            <html><body>
            <table>
            <tr><td><b>Column A</b></td><td><b>Column B</b></td></tr>
            <tr><td><font color="red">-154</b></td><td><font size="5">hello world</font></td></tr>
            </table>
            </body></html>
            

            Excel 将在您格式化时将其显示为工作表。 我认为,这是最通用的方式,如何在互联网环境中创建“丰富”的 Excel 工作表,而无需在服务器上安装 excel。

            【讨论】:

              【解决方案6】:

              查看Excel Web Access,它是 MOSS 中 Excel Services 的一部分,MOSS 是 Excel 的服务器端版本,可让您通过 Web 浏览器计算和显示 Excel 信息。 MOSS overview page 描述了可以在服务器上提供 Excel 功能的共享点框架。您可以使用VSTO API 以编程方式访问电子表格。

              【讨论】:

                【解决方案7】:

                不确定这是否正是您所需要的,但肯定可以是:4 Editing In Excel Tutorials(在 .NET #5-8 下)

                【讨论】:

                  【解决方案8】:

                  您可能想看看http://www.gemboxsoftware.com/GBSpreadsheetFree.htm

                  他们有一个包含所有功能的免费版本,但每个工作表限制为 150 行和每个工作簿 5 个工作表,如果这符合您的需求,否则付费版本的起价为 425 美元(1 个开发人员许可)。

                  StackOverflow: Create Excel (.XLS and .XLSX) file from C# 有可能适用于您的问题的其他答案。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2013-03-15
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2019-08-11
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多