告诉我 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 中读取数据

使用 OLEDB 数据提供程序读取 excel 文件

通过 OLEDB 读取 Excel 将字符串读取为 DBNull

使用 OleDB 读取 Excel 文件返回格式错误的 UPC 编号

我应该通过 OleDb Jet4.0 读取一个 excel 文件并保存到数据集中吗?