点晴MIS内部交流论坛 加入收藏
新手上路
论坛搜索
 您的位置:点晴MIS系统问题答疑『 技术文档交流 』浏览当前帖子  
登 陆注 册论坛帮助  

  网站搜索
  搜索范围: 搜索方式: 关键词(可用空格分开)  

  作者及文章信息: 本文热度:5283 % 
admin

积分:74803
等级:网站管理员
文数:13698
注册:2004-7-20

 信息   留言   主页   编辑   引用    

楼 顶 

 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文件

  1. /// <summary>
  2. /// 创建一个EXCEL文档
  3. /// 如果检测到已有此名的该文档,覆盖
  4. /// </summary>
  5. static void CreateExcelFile()
  6. {
  7. object path = "E:\\VS项目路径\\测试生成EXCEL2\\MyText.xls";
  8. //检测指定的文件是否存在(需要using System.IO)
  9. if (File.Exists((string)path))
  10. {
  11. File.Delete((string)path);
  12. }
  13. MSExcel.Application appExcel; //EXCEL应用程序变量
  14. MSExcel.Workbook excelDoc; //EXCEL文档变量
  15. //初始化 vs2010用Application()
  16. appExcel = new MSExcel.ApplicationClass(); //无法嵌入互操作类型(引用的EXCEL中嵌入操作改为False)
  17. //由于使用COM库,因此有很多变量需要使用Nothing代替
  18. Object Nothing = Missing.Value;
  19. excelDoc = appExcel.Workbooks.Add(Nothing);
  20. //WdSaveFormat为EXCEL文档的格式保存
  21. object format = MSExcel.XlFileFormat.xlWorkbookNormal;
  22. //使用第一个工作表作为插入数据的工作表
  23. MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheets[1];
  24. //在指定地方赋值
  25. MSExcel.Range r = ws.get_Range("A1", "A1"); //获取第1行第1列单元格
  26. r.Value2 = "直径"; //向第1行第1列单元格赋

  1. //将excelDoc文档对象的内容保存为XLSX文档
  2. excelDoc.SaveAs(path, Nothing, Nothing, Nothing, Nothing, Nothing, MSExcel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);
  3. //关闭excelDoc文档对象
  4. excelDoc.Close(Nothing, Nothing, Nothing);
  5. //关闭excelApp组件对象
  6. appExcel.Quit();
  7. }

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

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

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

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

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

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

备注:附加语法

  1. //合并单元格  r.Cells.get_Range("A1","B1").MergeCells = true;
  2. //后来发现合并单元格是因为标题里字多,我可以拉伸单元格 r.ColumnWidth = 15;

//单元格长了但又不是很长,把文本居中r.HorizontalAlignment = MSExcel.XlHAlign.xlHAlignCenter;

备注:Excel结构

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


该文章在 2018/9/8 15:55:13 编辑过

  离 线  2018-9-8 15:55:12 
  本文章共有 0 页, 0 张回文,每页有 10 张回文 >> [ ]
页码:  
Copyright 2003-2024 ClickSun All Rights Reserved