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自述页面有一些简单的例子,可以帮助你解决问题。
- 导出到excel工作在本地但不在服务器上
- 在Visual Studio中部署Excel Addin
- 安装COM AddIn后,在Excel中testing连接,得到蓝屏
- Excel SqlBulkCopy在本地PC和应用程序服务器上的工作方式不同。
- 创buildxlsx文件
- 我应该通过OleDb Jet4.0读取一个excel文件并保存到数据集?
- 使用.NET从Excel(xls / xlsx)创buildHTML表格
- ClosedXML使用公式使用条件格式时 – 公式不正确
- ReportINI.xls消息时创build新的Excel.Workbook与Microsoft.Office.Interop.Excel在C#