【原】.Net创建Excel文件(插入数据、修改格式、生成图表)的方法
1.添加Excel引用
可以在.Net选项卡下添加Microsoft.Office.Interop.Excel引用,或在COM下添加Microsoft Excel 12.0 Object Library。它们都会生成Microsoft.Office.Interop.Excel.dll。
2.创建Excel。
有两种方法创建一个Excel Workbook实例。
1.需要一个模板文件,使用Open方法,参数较多:
object miss = Missing.Value; Application excelApp = new Application(); excelApp.Workbooks.Open(TemplateName, miss, true, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss);
其中Open方法的第一个和第三个参数是模板名称(路径)和是否只读。其余参数一般不需要设置。这里将原文件设为只读,因为不会对模板文件进行修改。
object miss = Missing.Value; Application excelApp = new Application(); excelApp.Workbooks.Add(miss);
3.向Excel中插入数据表
Worksheet workSheet= (Worksheet)excelApp.Worksheets[2]; int rowCount = 20; int colCount = 5; object[,] dataArray = new object[rowCount, colCount]; Random rand = new Random(DateTime.Now.Millisecond); for(int i = 0; i < rowCount ;i++) {for(int j=0;j<colCount;j++){dataArray[i, j] = i+j;} } workSheet.get_Range(workSheet.Cells[1, 1], workSheet.Cells[rowCount, colCount]).Value2 = dataArray; workSheet = null;
倒数第二行,get_Range方法中的两个参数分别是要插入数据区域的起始和中止坐标(左上角坐标为【1,1】)。这里直接将二维数组插入表格比一点一点插入每个格子效率高些。
4.修改Excel表格样式
设置表格样式主要是设置Range类对象的属性。和插入数据类似,通过Worksheet的get_Range方法获得需要设置样式的区域,设置相应的属性改变样式。
Range range = workSheet.get_Range(workSheet.Cells[1, 1], workSheet.Cells[1, colCount]); range.Interior.Color = 255 ; //设置区域背景色。 range.Font.Bold = true; //设置字体粗体。 range.BorderAround(XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, 15); //设置区域边框
几乎所有可以通过图形界面对Excel格式的设置,包括公式、排序等都可以在这里设置。不过由于属性和方法没有详细的说明,所以需要一点点慢慢摸索……
5.向Excel中插入图表
插入图表则主要是操作ChartObject对象和Chart对象。
//设置图表大小。 ChartObject chartObj = charts.Add(0, 0, 400, 300); Chart chart = chartObj.Chart; //设置图表数据区域。 Range range = workSheet.get_Range("A1", "E10"); chart.ChartWizard(range, XlChartType.xl3DColumn,miss,XlRowCol.xlColumns, 1, 1, true, "标题", "X轴标题", "Y轴标题", miss); //将图表移到数据区域之下。 chartObj.Left = Convert.ToDouble(range.Left); chartObj.Top = Convert.ToDouble(range.Top) + Convert.ToDouble(range.Height);
0 | 1 | 2 | 3 | 4 |
1 | 2 | 3 | 4 | 5 |
2 | 3 | 4 | 5 | 6 |
3 | 4 | 5 | 6 | 7 |
4 | 5 | 6 | 7 | 8 |
5 | 6 | 7 | 8 | 9 |
6 | 7 | 8 | 9 | 10 |
7 | 8 | 9 | 10 | 11 |
8 | 9 | 10 | 11 | 12 |
9 | 10 | 11 | 12 | 13 |
chart.ChartWizard(range, XlChartType.xlLine,miss,XlRowCol.xlRows, 1, 1, true, "标题", "X轴标题", "Y轴标题", miss);
在PlotBy Row的时候,会以一行的数据为一个数据系列画一条线,并把第每行的一列值作为这一条线的标题,而把第一行的每一列作为该线的横坐标。
chart.ChartWizard(range, XlChartType.xlLine,miss,XlRowCol.xlColumns, 1, 1, true, "标题", "X轴标题", "Y轴标题", miss);
在PlotBy Column的时候,会以一列的数据为一个数据系列画一条线,并把第每列的一行值作为这一条线的标题,而把第一列的每一行作为该线的横坐标。
这两种模式相同点就在于,它们都是以坐标格内的值作为纵坐标的。这里需要注意的是,如果第五和第六个参数改为2,并不是取行的第二列或列的第二行作为标题,而是取前两行或前两列,比如:
chart.ChartWizard(range, XlChartType.xlLine,miss,XlRowCol.xlColumns, 2, 0, true, "标题", "X轴标题", "Y轴标题", miss);
由于系列标题设置为0,所以使用了默认的“系列X”作为标题,而横坐标则取了每列的前两行,所以共有三条线,每条线上10个点。
6.保存Excel
保存前,需要先刷新,使新的记录能被记下:
Workbook workBook = excelApp.Workbooks[1]; workBook.RefreshAll();
之后的保存,也有两种方法:
1.直接保存,当之前通过Open方法创建Excel文件,并没有设为只读时,可以用这种方法,比较简单:
Workbook workBook = excelApp.Workbooks[1]; workBook.Save();
2.这一种方法的比较灵活,就是SaveAs(),相当于界面操作的另存为,但这个方法的问题和创建Workbook时的第一种方法一样,参数比较多,虽然大部分可以用miss。
Workbook workBook = excelApp.Workbooks[1]; object miss = Missing.Value; workBook.SaveAs(path, miss, miss, miss, miss, miss, XlSaveAsAccessMode.xlNoChange, miss, miss, miss, miss, miss);
workBook.Close(false, miss, miss); workBook = null;
7.最后需要清空内存
excelApp.Quit(); excelApp = null; GC.Collect();
转载于:https://www.cnblogs.com/smjack/archive/2009/02/25/1398257.html
【原】.Net创建Excel文件(插入数据、修改格式、生成图表)的方法相关推荐
- Java操作excel文件插入数据
读取一个表数据根据自己的需求将数据插入到另外一个表中,复制代码下载excel及jar包即可 注意:读取表数据时,表格中的格子没有数据时会读取报错 excel文件及相关jar包: 连接:https:// ...
- java使用poi给excel文件插入数据
excel模板文件 代码 package com.example.demo;import java.io.File; import java.io.FileInputStream; import ja ...
- python创建excel_python创建Excel文件数据的方法
原博文 2018-12-07 18:41 − # -*- coding: utf-8 -*- # @Time : 2018/12/6 17:10 # @Author : suchao # @Disc: ...
- 在python中创建Excel文件并写入数据
来源:<在python中创建Excel文件并写入数据> python中的包xlwt和xlsxwriter都是比较方便创建excel文件并写入数据的. xlwt中: 通过xlwt.Workb ...
- python创建Excel文件及写入保存数据
python创建Excel文件及写入保存数据 创建Excel文件及写入保存数据 文章目录 python创建Excel文件及写入保存数据 一. 创建并保存Excel文档 二.工作表的创建 三.完整代码 ...
- python创建excel文件报错_python-通过openpy操作excel
1.安装 openpyxl pip install openpyxl == 2.3.5 安装指定版本 遇到问题: 查询结果:这是因为电脑上有其他软件也有pip命令,我的电脑上是因为装了loadrun ...
- Python使用openpyxl和pandas处理Excel文件实现数据脱敏案例一则
推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷 送书活动火爆进行中:董老师又双叒叕送书啦,30本 ...
- 2016版excel_Python使用openpyxl和pandas处理Excel文件实现数据脱敏案例一则
推荐图书:<Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷 送书活动火爆进行中:董老师又双叒叕送书啦,30本& ...
- php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...
最新文章
- 面试经典题-单链表反转
- scala语言的底层是java实现的_Scala学习笔记一(与Java、Jvm的关系以及程序执行流程分析)...
- 网站分类前导:获取网站标题和描述及对相关信息进行分词处理
- 程序员面试100题之十三:求二叉查找树的镜像
- 程序员如何快速消除自己的知识短板?
- 过了双十一之后的你。。| 今日最佳
- React的列表渲染
- 超详细!一文告诉你 SparkStreaming 如何整合 Kafka !附代码可实践
- redis学习笔记之虚拟内存
- eclipse实用编辑快捷键
- PyQGIS开发者手册-4 使用栅格图层
- 可汗学院公开课——统计学学习:35-46
- [计算机网络]十、TCP的拥塞控制和4个计时器、常用协议原理和命令
- 一分钟带你快速认识S参数
- [Javascript 高级程序设计]学习心得记录10 js函数表达式
- Linux系统中如何创建NFS共享目录
- 【英语竞赛】专项练习之听力
- 高效经理的五个常用原则
- jenkins安装和配置(二):配置第一个项目
- [HNOI2011] 卡农 题解
热门文章
- java反向映射_opencv 直方图和直方图反向映射
- E1 PCM复用设备常见故障及处理方法
- 在监控网络项目中该如何选择光纤交换机?
- POE以太网交换机产品优势介绍
- 【渝粤教育】国家开放大学2018年春季 4996T水土保持技术 参考试题
- 升级鸿蒙系统如何退出,华为鸿蒙2.0系统升级了怎么退回EMUI11系统-操作教程详解...
- 考试用计算机反思800字,考试反思作文800字
- android 设置资源,Android 资源
- 福州PHP讲师招聘_“艺”起就业|招聘信息汇总
- mysql 过滤相同数据库_MySQL数据库查询中的重复记录过滤