读一个Excel表,并添加到列表框一次读取。 C#

我正在阅读一个Excel文件,并将其张贴到一个名称(这是在Excel表第一列总是)列表框(employeeBox)。 然后我想要在列表框中select名称后删除该名称。 我的首要和主要问题是,它不会加载列表框中的名称。 当我debugging它,它甚至不像加载Excel读取。 我已经把代码放在button中,并加载正常。 任何人都可以协助 这是我的第一篇文章。 所以,如果有任何关于如何提出问题的build议,请告诉我。 PS代码被设置为获取单元格的值..不是名称。

private void Form3_Load(object sender, EventArgs e) { Excel.Application xlexcel = new Excel.Application(); xlexcel.Visible = true; string fileName = "C:\\MyExcel.xlsx"; Excel.Workbook xlWorkBook = xlexcel.Workbooks.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets[1]; Excel.Range usedRange = xlWorkSheet.UsedRange; string data = ""; Excel.Range curRange; List<string> itemsToAdd = new List<string>(); try { foreach (Excel.Range row in usedRange.Rows) { curRange = (Excel.Range)row.Cells[1, 1]; data = curRange.Cells.Value.ToString(); itemsToAdd.Add(data); xlWorkBook.Close(); xlexcel.Quit(); } employeeBox.DataSource = itemsToAdd; } catch(Exception) { Console.WriteLine(); } } private void employeeBox_SelectedIndexChanged(object sender, EventArgs e) { employeeBox.Click += employeeBox_Click; } private void employeeBox_Click(object sender, EventArgs e) { throw new NotImplementedException(); } 

在作出适当的更正之后,它给了我一个runtimeexception ..这促使我使用try catch ..它带走了错误,但仍然没有添加。 它显示了MessageBox,但没有添加到列表框中。 现在,我尝试了一下,发现它在closuresexcel的时候增加了,但是只增加了一件事情。

在这里输入图像说明 在这里输入图像说明

这应该工作循环通过每行与数据,并从第1列中获取值。

 Range usedRange = xlWorkSheet.UsedRange; string data = ""; Excel.Range curRange; List<string> itemsToAdd = new List<string>(); foreach (Excel.Range row in usedRange.Rows) { curRange = (Excel.Range)row.Cells[1, 1]; if (curRange.Cells.Value2 != null) { data = curRange.Cells.Value2.ToString(); itemsToAdd.Add(data); } } listBox1.DataSource = itemsToAdd; xlWorkBook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value); xlexcel.Quit(); 

更新要忽略空白行 – 当usedRange返回时…如果数据不在连续行中,它可能包含空行。

希望这可以帮助!