【问题标题】:Import Data from a xls file to datagridview? [duplicate]将数据从 xls 文件导入 datagridview? [复制]
【发布时间】:2021-03-04 13:55:36
【问题描述】:

我想将 xls 文件中的数据导入我的 datagridview,但我不断收到错误消息:输入数组大于列数。我该如何解决?我在这一行得到错误:_table.Rows.Add(data_col);

这是我的代码:

private void OpenXlsToolStripMenuItem_Click(object sender, EventArgs e)
    {
        OpenFileDialog ExcelÖffnen = new OpenFileDialog()
        {
            Title = "Open Excel Files",
            CheckPathExists = true,
            DefaultExt = "txt",
            Filter = "Excel files (*.xls)|*.xls",
            FilterIndex = 1,
            RestoreDirectory = true
        };

        if (ExcelÖffnen.ShowDialog() == DialogResult.OK)
        {
            string[] raw_txt = File.ReadAllLines(ExcelÖffnen.FileName);
            string[] data_col = null;
            int x = 0;

            foreach (string txt_line in raw_txt)
            {
            
                string[] vs = txt_line.Split(';');
                data_col = vs;
                

                if (x == 0)
                {
                    for (int i = 0; i <= data_col.Count() - 1; i++)
                    {
                        _table.Columns.Add(data_col[i]);
                    }

                    x++;
                }
                else
                {
                    _table.Rows.Add(data_col);
                }
            }
           
        }

任何帮助都会很好:)

提前致谢

【问题讨论】:

  • xls 是一个二进制文件(也许你想使用 csv 或先将 xls 转换为 csv?)。您不能使用ReadAllLines 阅读它,也不能使用; 拆分文本来获取项目,而是需要一个库。您收到错误是因为第一行(用于生成列)的项目比其他行少。
  • 你知道如何将其转换为 csv 吗?
  • 在 excel 中打开 xls 并另存为(导出?)到 csv。或者你想以编程方式convert it?顺便说一句,解析 csv 也不是那么简单的任务,您可能仍然需要为此使用库。
  • 上次你问这个问题时我告诉过你,你需要一个库来读取 excel 文件,它们不是简单的文本。
  • 如前所述,您需要一个 Excel 库来读取代码中的 Excel 文件。为了帮助您决定使用哪个库,您需要了解代码将在“何处”运行,以及您是否愿意为该库“付费”。我建议您阅读@Sinatr 第一个链接中的所有答案和 cmets。在选择特定库之前,需要考虑许多因素。

标签: c# import datagridview xls


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
相关资源
最近更新 更多