【问题标题】:Are there any third-party tools which allow importing XML data into Excel?是否有任何第三方工具可以将 XML 数据导入 Excel?
【发布时间】:2011-09-30 22:35:49
【问题描述】:

我们目前正在开发一个应用程序,该应用程序一直使用 C# 中的 COM Interop 将数据导入 Excel 工作簿。此数据相当复杂且冗长,因此我们一直在 Excel 中使用从 XML 导入功能。由于在服务器上运行 Excel 存在问题,我们现在正在考虑迁移到第三方解决方案来创建工作簿,例如 SpreadsheetGear 或 Aspose。

SpreadsheetGear 和 Aspose 不支持 XML 导入。有谁知道另一个对服务器友好的第 3 方工具?

--编辑-- 数据来自一个 DB2 数据库,我们将其放入 C# 类中,然后序列化为 XML。然后,我们将 XML 导入到大约 30 个表格和其他单元格中。然后我们将表格复制并粘贴到输出表中,并重复使用原件来导入更多内容。

--编辑-- 输出是在一张纸上包含多个表和字段的表单。 XML 地图的部分帮助是跟踪单元格的位置,而无需将单元格坐标大量硬编码到代码中。

【问题讨论】:

  • 联系这些产品的公司并询问?
  • 我刚刚联系了他们,但两款产品都不支持此功能。

标签: c# excel spreadsheetgear aspose aspose-cells


【解决方案1】:

您可以查看 SSIS。这具有可以将 XML 设置为数据源并将电子表格设置为目标的功能。 (反之亦然)。

【讨论】:

  • 这对于我们正在尝试做的事情来说可能是矫枉过正。我们首先从 DB2 数据库中获取数据。
【解决方案2】:

EPPlus 是一个不错的库,但我不相信你可以直接导入 XML,但你可以直接导入 csv 文件,示例中有示例。

实现起来还是相当容易的。

【讨论】:

  • 谢谢,我以前没见过 EPPlus。看起来他们目前正在为下一个版本进行 XML 导入。不幸的是,数据量相当大且复杂,因此如果可用,XML 映射将是最简单的方法。
【解决方案3】:

虽然我还没有找到支持此功能的第 3 方工具,但 Aspose.Cells 具有“智能标记”功能,允许您以类似于 XML 映射的方式指定特定单元格。我相信这可能是我一直在寻找的解决方案。

【讨论】:

  • FWIW Aspose.Cells 现在支持 XML 地图(至少对于导入而言)。它是在 .Net 7.3.0 的 Aspose.Cells 中引入的。
【解决方案4】:

将 XML 加载到数据集中,然后使用 EPPlus 从 excel 中取出数据表并从中创建一个 excel 文件:

DataSet ds = new DataSet();
            DataTable dt = ds.Tables[0];
            using (ExcelPackage pck = new ExcelPackage())
            {
                //Create the worksheet
                ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Calls");

                //Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
                ws.Cells["A1"].LoadFromDataTable(dt, true);

                Byte[] bin = pck.GetAsByteArray();

                string file = filePath;
                File.WriteAllBytes(file, bin);

            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    相关资源
    最近更新 更多