ExcelDataReader讀取excel-C#
阿新 • • 發佈:2021-12-01
1、獲取包
使用nuget搜尋ExcelDATaReader和ExcelDataReader.DataSet
都需要進行安裝操作
使用名稱空間
using System.IO;
using ExcelDataReader;
2、使用
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using ExcelDataReader; using System.Reflection; namespace ReadExcel { /// <summary> /// C#讀取Excel檔案(.xls .xlsx) /// LDH @ 2021-7-28 /// Nuget: ExcelDataReader ExcelDataReader.DataSet /// </summary> public partial class Form1 : Form { private DataTableCollection tableCollection; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { using (OpenFileDialog openFileDialog = new OpenFileDialog() { Filter = "Excel 97-2003 Workbook|*.xls|Excel Workbook|.xls"}) { if (openFileDialog.ShowDialog() == DialogResult.OK) { txtFileName.Text = openFileDialog.FileName; using (var stream = File.Open(openFileDialog.FileName,FileMode.Open, FileAccess.Read)) { using (IExcelDataReader reader = ExcelReaderFactory.CreateReader(stream)) { DataSet result = reader.AsDataSet(new ExcelDataSetConfiguration() { ConfigureDataTable = (_) => new ExcelDataTableConfiguration() { UseHeaderRow = true } }); DataTable dt = result.Tables[0]; // 關鍵就在這裡去獲取到excel中的單個數據 Value.Text = dt.Rows[1][2].ToString(); tableCollection = result.Tables; cboSheet.Items.Clear(); foreach (DataTable table in tableCollection) { cboSheet.Items.Add(table.TableName); } } } } } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { DataTable dt = tableCollection[cboSheet.SelectedItem.ToString()]; dataGridView1.DataSource = dt; } } }