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自述页面有一些简单的例子,可以帮助你解决问题。