使用 Excel 并使用 C#,您可以通过调用将整个 System.Data.Datatable 加载到工作表中
mySheet.Cells("A1").LoadFromDataTable(myDataTable, True)
其中 mySheet 是 OfficeOpenXml.ExcelWorksheet 对象。
我想知道是否有类似的东西 unoidl.com.sun.star.sheet.XSpreadsheet 和 LibreOffice Calc
我检查了 unoidl.com.sun.star.sheet.XSpreadsheet 类的可用方法,但找不到任何东西。但也许有一种比逐个单元格更好、更快的方法来使用 DataTable 对象中的数据填充 LibreOffice Calc 工作表
使用
setDataArray
插入二维数组。 开发人员指南显示了 Java 中的示例。
// --- Cell range data ---
com.sun.star.sheet.XCellRangeData xData = (com.sun.star.sheet.XCellRangeData)
UnoRuntime.queryInterface(com.sun.star.sheet.XCellRangeData.class, xCellRange);
Object[][] aValues =
{
{new Double(1.1), Integer.valueOf(10)},
{new Double(2.2), ""},
{new Double(3.3), "Text"}
};
xData.setDataArray(aValues);
要将 System.Data.Datatable 转换为数组,请尝试使用以下代码从 Datatable 到多维数组。
dt.AsEnumerable().Select(row => row.ItemArray).ToArray();