C#,Visual Studio,打开Excel,然后将数据放入combobox

很长时间的读者,第一次的海报。

在过去的几个小时里,我遇到了一个问题,试图从excel工作簿中拉出工作表名称,然后显示在combobox中进行select。 我设法得到它的工作,但我有点关心其原油,不是很有效。

private void btnChoose2_Click(object sender, RoutedEventArgs e) { OpenFileDialog openfileDialog1 = new OpenFileDialog(); if (openfileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { openLabel.Text = openfileDialog1.SafeFileName; String filename = DialogResult.ToString(); var excelApp = new Microsoft.Office.Interop.Excel.Application(); excelApp.Visible = false; excelApp.Workbooks.Open(openfileDialog1.FileName); int rcountTag = excelApp.Sheets.Count - 1; for (int i = 1; i <= rcountTag + 1; i++) { Microsoft.Office.Interop.Excel.Sheets excelSheets = excelApp.Worksheets; Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet) excelSheets.get_Item(i); comboBoxMapping.Items.Insert(i - 1, worksheet.Name); } } } 

任何build议将不胜感激。

如果要处理xlsx Excel格式,我会推荐EPPLUS 。

从nuget包pipe理器安装epplus库: 在这里输入图像说明

在这里输入图像说明

然后using OfficeOpenXml;

获取表单名称:

 ExcelPackage DocInv = new ExcelPackage(new FileInfo(ExcelDocument)); DocList = DocInv.Workbook.Worksheets.AsEnumerable().Select(x => x.Name).ToList(); 

你应该看看使用第三方库,这将使你的生活比互操作更容易。

Excel数据读取器

这将让你得到所有的表名和读取数据到一个DataTable,然后你可以访问,但是你想获得任何你需要的数据。 GitHub自述页面有一些简单的例子,可以帮助你解决问题。