1.首先要创建xlsx文件
2.在Com中添加引用
- 添加命名空间
using ApExcel = Microsoft.Office.Interop.Excel;
--这样起个名字方面后面写
4.样例
cs
//点击操作excel
DataTable dt = new DataTable();
string fileName = @"D:\desktop\tmp\test.xlsx";
ApExcel.Application exApp = new ApExcel.Application();
ApExcel.Workbooks wbs = exApp.Workbooks;
ApExcel.Workbook _wbs = null;
try
{
//打开已有excel文件
_wbs = wbs.Add(fileName); //这个就是要这样子来的,就很奇怪
ApExcel.Worksheet sheet = _wbs.Worksheets["Sheet1"]; //判断要操作哪个表
int rcount = sheet.UsedRange.Rows.Count; //使用了多少行和列
int colcount = sheet.UsedRange.Columns.Count;
///注意,这里的所有都是索引都是以1开头的
//excel中的第一行是dgb的标题
for (int i = 1; i <= colcount; i++)
{
//这个是设置列的哈,要设置好列才能使用才能添加DataRow
dt.Columns.Add(((ApExcel.Range)sheet.Cells[1, i]).Value); //添加列,将Cell转换为Range
}
for (int i = 2; i <= rcount; i++)
{
DataRow dr = dt.NewRow();
for (int j = 1; j <= colcount; j++)
{
//dt的索引从0开始
dr[j - 1] = ((ApExcel.Range)sheet.Cells[i, j]).Value;
}
dt.Rows.Add(dr);
}
this.dataGridView1.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
_wbs.Close();
wbs.Close();
exApp.Quit();
}
5.获取sheet.Cells值的时候也可以不使用强制转换,还要注意这个的下标是从1开始的