gpt4 book ai didi

c# - 将 Excel 范围转换为 ADO.NET 数据集或数据表等

转载 作者:太空狗 更新时间:2023-10-29 23:19:13 24 4
gpt4 key购买 nike

我有一个 Excel 电子表格,可以放在网络共享驱动器上。它需要通过我的 Winforms C# 3.0 应用程序访问(许多用户可能正在使用该应用程序并同时点击此电子表格)。一张工作表上有很多数据。这些数据被分解成我命名为范围的区域。我需要能够单独访问这些范围,将每个范围作为数据集返回,然后将其绑定(bind)到网格。

我已经找到了使用 OLE 的示例,并且已经使它们起作用。但是,我看到了一些关于使用此方法的警告,而且在工作中我们一直使用 Microsoft.Office.Interop.Excel 作为迄今为止的标准。除非必须,否则我真的不想偏离这个。据我所知,我们的用户将使用 Office 2003。

我可以用下面的代码得到我需要的范围:

MyDataRange = (Microsoft.Office.Interop.Excel.Range)
MyWorkSheet.get_Range("MyExcelRange", Type.Missing);

OLE 方式很好,因为它会将我的第一行转换为列。我的范围(总共 12 个)大部分在列数上彼此不同。不知道此信息是否会影响任何推荐。

有什么方法可以使用 Interop 并将返回的范围返回到数据集中吗?

最佳答案

内置函数我不知道,不过自己写应该不难吧。伪代码:

DataTable MakeTableFromRange(Range range)
{
table = new DataTable
for every column in range
{
add new column to table
}
for every row in range
{
add new datarow to table
for every column in range
{
table.cells[column, row].value = range[column, row].value
}
}
return table
}

关于c# - 将 Excel 范围转换为 ADO.NET 数据集或数据表等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2458481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com