gpt4 book ai didi

c# - 在 C# 用户控件中嵌入 excel 表

转载 作者:太空狗 更新时间:2023-10-29 22:25:09 25 4
gpt4 key购买 nike

我需要在 C# 语言的用户控件中嵌入一个 Excel 工作表部分(不是整个工作表)。我想操作上面的数据并将其保存在一个集合中。

最好的方法是什么?

最佳答案

我会使用 Excel COM 库打开电子表格。如果添加对 Microsoft Excel 对象库的引用,则可以进入 Com 接口(interface)。

添加这些 using 语句:

using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;

然后您可以通过执行以下操作从电子表格中读取:

   private void GetData(string fileName, string tabName)
{
Workbook theWorkbook;

Application ExcelObj = null;
ExcelObj = new Application();

theWorkbook = ExcelObj.Workbooks.Open(fileName,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);


Sheets sheets = theWorkbook.Worksheets;
Worksheet worksheet = (Worksheet)sheets[tabName];

Range range = worksheet.get_Range("A1:A1", Type.Missing);

string data = range.Text as string;

//
// TODO : store the data
//

theWorkbook.Close(false, fileName, null);
}

此代码会将 A1 单元格的内容读入字符串。

使用 Excel COM 接口(interface)的一个怪癖是您必须访问范围内的数据,即使您只需要一个单元格。您可以将范围设置为一组单元格,然后您可以迭代它返回的集合以获取每个单元格的内容。

您还想在文件名和选项卡名称上添加一些错误检查/处理。

还有一种方法是使用 ODBC 从 Excel 中读取,但电子表格必须以某种方式进行格式化。第 1 行必须有标题数据。我发现使用 COM 接口(interface)更容易。

一旦获得了所需的数据,就可以将其放入类型化数据集中。然后,如果您在 WPF 中使用 WinForms 或 ListBox,则可以将该数据集绑定(bind)到 DataGridView。如果您只想以 XML 格式保存数据,可以使用 DataSet WriteXml 函数将数据存储到文件中。

关于c# - 在 C# 用户控件中嵌入 excel 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/757023/

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