gpt4 book ai didi

c# - 当工作表名称包含空格时无法从 Excel 工作表中读取

转载 作者:太空宇宙 更新时间:2023-11-03 12:24:21 25 4
gpt4 key购买 nike

我想从 Excel 工作表中将数据放入 combobox 中。但是,工作表名称与 sheet1$ 不同。我的 Excel 工作表名称是 Sac Haddehanesi Kalite Kontrol。当我将工作表命名为 sheet1 时,它起作用了。但是,excel 文件发送给每个人,它是另一个人给出的工作表名称。所以,我必须使用原始工作表名称,无法通过以下代码读取它:

pintu(textBox8.Text);
try
{
con.Open();
str = "SELECT * FROM [Sac Haddehanesi Kalite Kontrol$]";
com = new OleDbCommand(str, con);
oledbda = new OleDbDataAdapter(com);
ds = new DataSet();
oledbda.Fill(ds, "Sac Haddehanesi Kalite Kontrol$");
con.Close();
dt = ds.Tables["Sac Haddehanesi Kalite Kontrol$"];
int i = 0;
for (i = 0; i <= dt.Rows.Count - 1; i++)
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "[Bobin ID]";

这是我的电子表格的图片:

enter image description here

最佳答案

自己调试问题后,似乎在工作表名称有特殊字符时读取有问题。

尝试根据其索引而不是其名称从工作表中读取。

以下代码将所有工作表名称读入临时 DataTable,获取第一个工作表名称并在其余代码中使用它:

con.Open();

// Read all sheet names into a temporary data table
DataTable dtExcelSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

// Get the FIRST sheet name
string sheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString();

// Now use this name to select
str = "SELECT * FROM [" + sheetName +"]";

com = new OleDbCommand(str, con);
oledbda = new OleDbDataAdapter(com);
ds = new DataSet();
oledbda.Fill(ds, sheetName);
con.Close();
dt = ds.Tables[sheetName];

关于c# - 当工作表名称包含空格时无法从 Excel 工作表中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45796497/

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