分享

使用C#操作EXCEL文件

 冷冰狐 2020-07-24

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://download.csdn.net/download/weixin_42764060/11175686

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多