0

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

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

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

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

4

4 回答 4

1

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

于 2011-04-15T15:28:23.563 回答
1

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

它仍然很容易实现。

于 2011-04-15T15:57:12.620 回答
1

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

于 2011-04-20T14:13:24.857 回答
0

将 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);

            }
于 2011-09-30T14:35:49.633 回答