gpt4 book ai didi

c# - 在 C# 中使用 oledb 获取 Excel 数据范围

转载 作者:行者123 更新时间:2023-12-04 19:51:19 25 4
gpt4 key购买 nike

我想通过使用 oledb 获取 excel 工作表使用的数据范围。代码如下,

String strExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=E:\\DOTNET\\CrsMicro\\CA.xls;"
+ "Extended Properties='Excel 8.0;HDR=Yes'";


using (OleDbConnection connExcel = new OleDbConnection(strExcelConn))
{
string selectString = "SELECT * FROM [CA$A1:D500]";
using (OleDbCommand cmdExcel = new OleDbCommand(selectString,connExcel))
{
cmdExcel.Connection = connExcel;
connExcel.Open();
DataTable dt=new DataTable();
OleDbDataAdapter adp = new OleDbDataAdapter();
adp.SelectCommand = cmdExcel;
adp.FillSchema(dt, SchemaType.Source);
adp.Fill(dt);
int range=dt.Columns.Count;
int row = dt.Rows.Count;

//var result = cmdExcel.ExecuteReader();

//DataTable dtExcelSchema;
//dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
// string excelsheetname = dtExcelSchema.Rows[0].ItemArray[2].ToString();
connExcel.Close();
//string sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
}
}

我的工作表范围并不总是 A1:D500,它可能经常变化。所以我需要动态获取工作表范围。我知道这可以通过互操作来实现,但我需要在 oledb 中完成。有什么建议吗?

最佳答案

创建命名范围: https://msdn.microsoft.com/EN-US/library/office/ff196817.aspx并将 selectString 替换为

"SELECT * FROM [CA$MyNamedRange]"

关于c# - 在 C# 中使用 oledb 获取 Excel 数据范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27768983/

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