【问题标题】:C#- Pull column from Excel to a Checkbox listC#- 将列从 Excel 拉到复选框列表
【发布时间】:2019-05-10 05:29:32
【问题描述】:

我正在尝试在 excel 的列中提取信息并将其显示在 Windows 表单的复选框列表中。

现在我在 Excel 工作表中有一个应用程序名称列表,我正在尝试将单元格值放入字符串数组并将其附加到清单框。

这是我处理 windows 窗体的窗体类:

 public Form1()
        {
            InitializeComponent();

            //FilesList filesList = new FilesList();
            //AppList testApp = new AppList();
            //filesList.DirSearch(@"C:\Users\dbell\Downloads\");

            Excel e = new Excel(@"SupportedApps.xlsx", 1);

            String[] list = e.ReadApplication();



            try
            {
                checkedListBox1.Items.AddRange(list);
            }
            catch (ArgumentNullException F)
            {
                Console.WriteLine("Error: " + F.ToString());
            }

        }

下面是我创建一个从我的工作表返回字符串数组的方法的糟糕尝试:

public string[] ReadApplication()
        {
            int column = 0;
            int row = 1;
            int stringNum = 0;
            string[] result = null;
            try
            {
                while (ws.Cells[row, column].Value2 != null)
                {
                    result[stringNum] = ws.Cells[row, column].Value2;
                    row++;
                    stringNum++;
                }
            }
            catch(NullReferenceException e)
            {
                Console.WriteLine("Error: " + e.ToString());
            }


            return result;
        }

目前我不断得到空结果。我已经能够将其作为 CSV 文件工作,但是我只想使用一张 excel 表。

提前致谢

【问题讨论】:

  • 首先学习如何从workbook 中的一个特定sheet 中读取。一个工作簿可以包含 > 1 sheet

标签: c# excel winforms checkboxlist


【解决方案1】:

尝试使用https://www.nuget.org/packages/ClosedXML/ 库。

        ClosedXML.Excel.IXLWorkbook workbook = new XLWorkbook(@"D:\Test.xlsx");
        var worksheet = workbook.Worksheets.First();

        int column = 1;
        int row = 1;
        int stringNum = 0;
        List<string> result = new List<string>();
        try
        {
            while (worksheet.Cell(row, column).Value != null && row < worksheet.RowCount())
            {
                result.Add(worksheet.Cell(row, column).Value.ToString());
                row++;
                stringNum++;
            }
        }
        catch (NullReferenceException e)
        {
            Console.WriteLine("Error: " + e.ToString());
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多