C#讀取Excel數據
在visual studio 2019創建一個Form窗體文件,設計一個Button按鈕和一個GridView控件(用來顯示Excel中的數據)
private void Button1_Click(object sender, EventArgs e)
{
//實例化DataTable來存放數據
DataTable dt = new DataTable();
string fileName = @"你的文件路徑";
string sheetName = "sheet1";//Excel的工作表名稱
bool isColumnName = true;//判斷第一行是否為標題列
IWorkbook workbook;//創建一個工作薄接口
string fileExt = Path.GetExtension(fileName).ToLower();//獲取文件的拓展名
//創建一個文件流
using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
if (fileExt == ".xlsx")
{
workbook = new XSSFWorkbook(fs);
}
else
{
workbook = null;
}
//實例化sheet
ISheet sheet = null;
if (sheetName != null && sheetName != "")//判斷是否存在sheet
{
sheet = workbook.GetSheet(sheetName);
if (sheet == null)
{
sheet = workbook.GetSheetAt(0);//從第一個開始讀取,0位索引
}
else
{
sheet = workbook.GetSheetAt(0);
}
}
//獲取表頭
IRow header = sheet.GetRow(sheet.FirstRowNum);
int startRow = 0;//數據的第一行索引
if (isColumnName)//表示第一行是列名
{
startRow = sheet.FirstRowNum + 1;//數據從第二行開始讀
//遍歷表的第一行,即所有的列名
for (int i = header.FirstCellNum; i < header.LastCellNum; i++)
{
ICell cell = header.GetCell(i);
if (cell != null)
{
//獲取列名的值
string cellValue = cell.ToString();
if (cellValue != null)
{
DataColumn col = new DataColumn(cellValue);
dt.Columns.Add(col);
}
else
{
DataColumn col = new DataColumn();
dt.Columns.Add(col);
}
}
}
}
//讀取數據
for (int i = startRow; i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
if (row == null)
{
continue;
}
DataRow dr = dt.NewRow();
for (int j = row.FirstCellNum; j < row.LastCellNum; j++)
{
if (row.GetCell(j) != null)
{
dr[j] = row.GetCell(j).ToString();
}
}
dt.Rows.Add(dr);
}
}
dataGridView1.DataSource = dt;
}
然后啟動程序,點擊button按鈕,即可讀取Excel中的數據。