告诉我 OLEDB 数据阅读器读取 excel 文件列的最大限制是多少?
Posted
技术标签:
【中文标题】告诉我 OLEDB 数据阅读器读取 excel 文件列的最大限制是多少?【英文标题】:tell me the that what is the maximum limit of OLEDB data reader to read excel file columns? 【发布时间】:2020-07-24 07:12:33 【问题描述】:帮助我获取我的所有列,我想检索 1000 列。我想检索我的所有字段,当我导出它们时它可以工作,但在导入时却不行。 它出口但不进口。 有没有其他方法可以做到这一点,请发送代码检查我的代码是否有任何问题。 导入后,我使用循环将值插入到标签中。
try
attachment = new OpenFileDialog();
//attachment.Filter = "Excel 97-2003 Workbook|*.xls|Excel Workbook|*.xlsx";
if (attachment.ShowDialog() == DialogResult.OK)
fileName = attachment.FileName;
FileName_textBox = fileName;
string name = "Detail";
OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName_textBox + ";Extended Properties=Excel 12.0;");
con.Open();
OleDbCommand oleDbCommand = new OleDbCommand("SELECT * FROM [" + name + "$]", con);
OleDbDataReader oleDbDataReader = oleDbCommand.ExecuteReader();
while (oleDbDataReader.Read())
for (int i = 0; i < labels.Length; i++)
int j = Convert.ToInt32(labels[i].Text);
int p = Convert.ToInt32(oleDbDataReader.GetValue(i).ToString());
labels[i].Text = (j + p).ToString();
catch (Exception ex)
MessageBox.Show(ex.ToString());
例外是数组超出了界限。我尝试了一切,但我无法解决这个问题,每当我只循环 255 值时,它就可以正常工作。请帮忙。我已经尽我所能尝试了很多次,但同样的例外来了。
【问题讨论】:
【参考方案1】:我之前回答过这个问题......
Help and Advice on using Oledb for large excel Files
要阅读接下来的 255 列并将“Sheet1”作为您的工作表名称,您需要指定...
Select * From [Sheet1$IV:SP]
等等等等等等。阅读 1000 是一件苦差事,但并非不可能
【讨论】:
所以我们一次只能获得 255 个字段,然后在下一个查询中我们可以获得接下来的 255 个值。这是在说什么吗? 谢谢你的回复,看起来很有用,我去试试。 是的。就是这样。以上是关于告诉我 OLEDB 数据阅读器读取 excel 文件列的最大限制是多少?的主要内容,如果未能解决你的问题,请参考以下文章
用于读取由其他用户独占打开的 Excel 文件的 OleDB 连接字符串
通过 OLEDB 读取 Excel 将字符串读取为 DBNull