C#操作Excel文件~创建Excel文件

今天用了近一天的时间来完成和学习,和大家分享如下:

网上有用插件的方法,我是用COM组件

C#操作Excel文件:

1.在程序里创建Excel文件

2.在程序里对已有的Excel文件修改数据

前提

using MSExcel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.IO;

备注:第一个指令集会报错,需要添加引用COM下的Office和Excel

功能一:在程序里创建Excel文件

/// <summary>
        /// 创建一个EXCEL文档
        /// 如果检测到已有此名的该文档,覆盖
        /// </summary>
        static void CreateExcelFile()
        {
            object path = "E:\\VS项目路径\\测试生成EXCEL2\\MyText.xls";

           //检测指定的文件是否存在(需要using System.IO)
            if (File.Exists((string)path))
            {
                File.Delete((string)path);
            }

            MSExcel.Application appExcel;   //EXCEL应用程序变量
            MSExcel.Workbook excelDoc;      //EXCEL文档变量

            //初始化 vs2010用Application()
            appExcel = new MSExcel.ApplicationClass();   //无法嵌入互操作类型(引用的EXCEL中嵌入操作改为False)
           
           //由于使用COM库,因此有很多变量需要使用Nothing代替
            Object Nothing = Missing.Value;
            excelDoc = appExcel.Workbooks.Add(Nothing);

           //WdSaveFormat为EXCEL文档的格式保存
            object format = MSExcel.XlFileFormat.xlWorkbookNormal;

            //使用第一个工作表作为插入数据的工作表
            MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheets[1];

           //在指定地方赋值 
            MSExcel.Range r = ws.get_Range("A1", "A1"); //获取第1行第1列单元格
            r.Value2 = "直径";                          //向第1行第1列单元格赋
            //将excelDoc文档对象的内容保存为XLSX文档
            excelDoc.SaveAs(path, Nothing, Nothing, Nothing, Nothing, Nothing, MSExcel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);
           //关闭excelDoc文档对象 
           excelDoc.Close(Nothing, Nothing, Nothing);
           //关闭excelApp组件对象
           appExcel.Quit();
           
        }

备注:我的笔记本工作站是公司昨天新配的,因为这个在//将excelDoc文档对象的内容保存为XLSX文档这里报错未处理的COMException

详细描述问题:比如我将一根wrod文件移动到另一个文件夹,会弹出管理员权限……的

解决:在项目所在的硬盘右键-属性-安全-权限里给予权限

备注:在尝试在其他格子赋值的时候给自己普及了下Excel文件的知识,将格子所在位置的表示标出来了,横是行,纵是列,以英文+数字表示

备注:(A1,A1)的位置是test是第二个程序修改覆盖的,原为直径

备注:最后的结果就是上面的图片和下面的

备注:附加语法

//合并单元格   r.Cells.get_Range("A1","B1").MergeCells = true;
//后来发现合并单元格是因为标题里字多,我可以拉伸单元格  r.ColumnWidth = 15;
//单元格长了但又不是很长,把文本居中r.HorizontalAlignment = MSExcel.XlHAlign.xlHAlignCenter;

备注:Excel结构

book文档对象--------sheet表---------range单元格

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值