使用C#操作EXCEL文件

1.在项目中引用Microsoft Excel 12.0 Object Lib这个COM组件,如图所示。

 

 


2. 在命名空间中添加引用,完整的引用如图所示。


3.打开、关闭Excel文件
//EXCEL所存储的路径
string fileName = @"C:\Users\Administrator\Desktop\测试.xls";

//新建一个应用程序EXC1
MSword.Application EXC1 = new MSword.Application();
EXC1.Visible = true;//设置EXC1打开后可见


MSword.Workbooks wbs = EXC1.Workbooks;
MSword._Workbook wb = wbs.Add(fileName);//打开并显示EXCEL文件

wb.Close();//关闭文档
wbs.Close();//关闭工作簿

EXC1.Quit();//关闭EXCEL应用程序

//释放EXCEL应用程序的进程
System.Runtime.InteropServices.Marshal.ReleaseComObject(EXC1);


4. 获取工作表
一个Excel文档中,通常会有多张工作表,通过一些基本的命令,可以获取某张工作表的名称,行数等.

首先,获取工作表应在关闭文档之前,所以,我们先将第3步骤中的关闭文档及后面的代码注释掉,然后再写入对工作表进行操作的代码,如下面代码所示。

//EXCEL所存储的路径
string fileName = @"C:\Users\Administrator\Desktop\测试.xls";

//新建一个应用程序EXC1
MSword.Application EXC1 = new MSword.Application();
EXC1.Visible = true;//设置EXC1打开后可见


MSword.Workbooks wbs = EXC1.Workbooks;
MSword._Workbook wb = wbs.Add(fileName);//打开并显示EXCEL文件

MSword._Worksheet Exsheet;//定义一个新的工作表
Exsheet = wb.Sheets[1];//获取Excel文件中的第一张工作表
string sName = Exsheet.Name;//将工作表名称,存入一个字符串变量进行记录
int sRowcount = Exsheet.Rows.Count;//将工作表行数,存入一个整型变量进行记录
//同样可以通过 Exsheet = wb.Sheets[2]进行操作
Exsheet.Activate();//激活工作表


//wb.Close();//关闭文档
//wbs.Close();//关闭工作簿

//EXC1.Quit();//关闭EXCEL应用程序

释放EXCEL应用程序的进程
//System.Runtime.InteropServices.Marshal.ReleaseComObject(EXC1);

5. 删除工作表
如下面的代码所示,在激活工作表1后,获取工作表3,然后对工作表三进行删除操作。

//EXCEL所存储的路径
string fileName = @"C:\Users\Administrator\Desktop\测试.xls";

//新建一个应用程序EXC1
MyExcel.Application EXC1 = new MyExcel.Application();
EXC1.Visible = true;//设置EXC1打开后可见


MyExcel.Workbooks wbs = EXC1.Workbooks;
MyExcel._Workbook wb = wbs.Add(fileName);//打开并显示EXCEL文件

MyExcel._Worksheet Exsheet;//定义一个新的工作表
Exsheet = wb.Sheets[1];//获取Excel文件中的第一张工作表
string sName = Exsheet.Name;//将工作表名称,存入一个字符串变量进行记录
int sRowcount = Exsheet.Rows.Count;//将工作表行数,存入一个整型变量进行记录
//同样可以通过 Exsheet = wb.Sheets[2]进行操作
Exsheet.Activate();//激活工作表

MyExcel.Sheets dd = wb.Sheets;//获取工作表
Exsheet = (MyExcel.Worksheet)dd.get_Item(3);
EXC1.DisplayAlerts = false;
Exsheet.Delete();//删除第三张工作表
wb.Save();


//wb.Close();//关闭文档
//wbs.Close();//关闭工作簿

//EXC1.Quit();//关闭EXCEL应用程序

释放EXCEL应用程序的进程
//System.Runtime.InteropServices.Marshal.ReleaseComObject(EXC1);

6. 对EXCEl工作表的行列进行操作
//EXCEL所存储的路径
string fileName = @"C:\Users\Administrator\Desktop\测试.xls";

//新建一个应用程序EXC1
MyExcel.Application EXC1 = new MyExcel.Application();
EXC1.Visible = true;//设置EXC1打开后可见


MyExcel.Workbooks wbs = EXC1.Workbooks;
MyExcel._Workbook wb = wbs.Add(fileName);//打开并显示EXCEL文件

object Nothing = Missing.Value;
MyExcel._Worksheet Exsheet;//定义一个新的工作表
Exsheet = wb.Sheets[1];//获取Excel文件中的第一张工作表
string sName = Exsheet.Name;//将工作表名称,存入一个字符串变量进行记录
int sRowcount = Exsheet.Rows.Count;//将工作表行数,存入一个整型变量进行记录
//同样可以通过 Exsheet = wb.Sheets[2]进行操作
Exsheet.Activate();//激活工作表

//删除工作表第一行
((MyExcel.Range)Exsheet.Rows[1, Nothing]).Delete(MyExcel.XlDeleteShiftDirection.xlShiftUp);

//删除工作表第二列
((MyExcel.Range)Exsheet.Cells[Exsheet.Rows.Count, 2]).Delete(MyExcel.XlDeleteShiftDirection.xlShiftToLeft);


((MyExcel.Range)Exsheet.Rows[3, Missing.Value]).RowHeight = 5;//设置行高

((MyExcel.Range)Exsheet.Rows[3, Missing.Value]).ColumnWidth = 5;//设置列宽

7. 对EXCEL文档中的单元格进行操作
#region 打开EXCEL文件模块
//EXCEL所存储的路径
string fileName = @"C:\Users\Administrator\Desktop\测试.xls";

//新建一个应用程序EXC1
MyExcel.Application EXC1 = new MyExcel.Application();
EXC1.Visible = true;//设置EXC1打开后可见


MyExcel.Workbooks wbs = EXC1.Workbooks;
MyExcel._Workbook wb = wbs.Add(fileName);//打开并显示EXCEL文件

object Nothing = Missing.Value;
MyExcel._Worksheet Exsheet;//定义一个新的工作表
Exsheet = wb.Sheets[1];//获取Excel文件中的第一张工作表
string sName = Exsheet.Name;//将工作表名称,存入一个字符串变量进行记录
int sRowcount = Exsheet.Rows.Count;//将工作表行数,存入一个整型变量进行记录
//同样可以通过 Exsheet = wb.Sheets[2]进行操作
Exsheet.Activate();//激活工作表

MyExcel.Range DYG = (MyExcel.Range)Exsheet.Cells[2, 2];//单元格B2
string content = DYG.Text;//读取单元格中的内容,并且写入一个string类型变量中
double height = DYG.Height;//读取单元格的高度,并且写入一个double类型的变量中
double width = DYG.Width;//读取单元格的宽度,并且写入一个double类型的变量中
Exsheet.Cells[2, 2] = "= A5&A3";//在B2单元格中设置公式
Exsheet.Cells[2, 3] = "sssss";//在C3单元格中设置内容


原文链接:https://blog.csdn.net/weixin_42764060/article/details/90145351

posted @ 2021-03-25 21:43  zixyir  阅读(509)  评论(0)    收藏  举报