利用Com组件产Excel完整操作
最近公司要批次产出报表,是利用控制台应用程序操作Excel,并设置各种样式。
在网上搜索此类的例子,但是感觉一些用法都已经发生了变化,我用的.net 4.0 ,Microsoft.Office.Interop.Excel 为14.0.0.0,这些操作过程是我在一个一个试验出来的,感觉学到了很多东西,在此和大家分享一下对Excel的基本用法用法,适合没做过此类功能的同仁学习了...
1:关于引用
先添加参考,再引用
using Excel = Microsoft.Office.Interop.Excel;
2:初始化应用类
Excel.Range rRang;//用此矩形来操作样式
Excel.Application xls_exp = new Excel.Application();
Excel._Workbook xls_book = xls_exp.Workbooks.Add(Missing.Value);
Excel._Worksheet xls_sheet = (Excel._Worksheet)xls_book.ActiveSheet;//工作表
3:工作表的整体样式的设定
xls_sheet.Cells.HorizontalAlignment = Excel.Constants.xlLeft;//左對齊
xls_sheet.Cells.Font.Name = "新細明體";
xls_sheet.Cells.Font.Size = ;
xls_sheet.Cells.WrapText = true;//自動換行
xls_sheet.Cells.EntireRow.AutoFit();//行高根据内容自动调整
4:设置列宽
((Excel.Range)xls_sheet.Cells[, "A"]).ColumnWidth = 10.75;
5:合并单元格,并赋值
rRang = xls_sheet.Range[xls_sheet.Cells[, ], xls_sheet.Cells[, ]];
rRang.Merge(Missing.Value);
rRang.Value = "XXXXXX";
rRang.Cells.HorizontalAlignment = Excel.Constants.xlCenter;//居中
6:为单个单元格赋值,并为一个矩形设置为中等宽度的边框
xls_sheet.Cells[, "D"] = "主旨:";
rRang = xls_sheet.Range[xls_sheet.Cells[, "E"], xls_sheet.Cells[, "R"]];
rRang.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).Weight = Excel.XlBorderWeight.xlMedium;
7:设置字体大小和粗体
rRang = xls_sheet.Range[xls_sheet.Cells[, ], xls_sheet.Cells[, "E"]];
rRang.Columns.Font.Size = ;
rRang.Columns.Font.Bold = true;
8:设置单元格颜色和字体颜色(Color 为引用的System.Drawing)
rRang = xls_sheet.Range[xls_sheet.Cells[, "N"], xls_sheet.Cells[ITotalCount + , "P"]];
rRang.Columns.Interior.Color = Color.LightGoldenrodYellow; rRang = xls_sheet.Range[xls_sheet.Cells[, "I"], xls_sheet.Cells[ITotalCount+, "J"]];
rRang.Columns.Font.Color = Color.Red;
9:保存文件,关闭Execl
if (!Directory.Exists(strPath))
{
Directory.CreateDirectory(strPath); }
strPath = strPath + strFileName;
if (File.Exists(strPath))
{
File.Delete(strPath);
}
xls_sheet.Name = "XXXXXX";
xls_sheet.SaveAs(strPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
xls_exp.ActiveWorkbook.Close(false, strFileName, null);
xls_exp.Quit();
xls_exp = null;
至此,基本上Execl的操作是OK的,通过这些样式的设置,我已经做出了很漂亮的Execl文件
下面附缩小版的设计图一张,因为涉及公司机密,这些资料会看不清

利用Com组件产Excel完整操作的更多相关文章
- 利用NPOI组件产Excel完整操作
最终还是要使用NPOi了.刚开始做的是用com组件,发现如果本机不按照excel就不能使用,后来把其中一支改为了用Itextsharp产生pdf,但是还有几支批次要产生Excel,只能改用NPOI了. ...
- 使用ItextSharp产PDF完整操作
原文 使用ItextSharp产PDF完整操作 记得上回有写到用C#操作Excel(.net 4.0) 很多朋友说推荐用NPOI,的确,用微软自带的操作execl会有很大的问题.客户的主机不愿意安装e ...
- 利用kettle组件导入excel文件到数据库
利用kettle组件导入excel文件到数据库 1. 实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...
- 利用ItextSharp产PDF完整操作
记得上回有写到用C#操作Excel(.net 4.0) 很多朋友说推荐用NPOI,的确,用微软自带的操作execl会有很大的问题.客户的主机不愿意安装excel, 这时我才意识到用自带组件完全是不行的 ...
- 猜想-未做 利用office组件读取excel数据
---未实际使用过 用SQL-Server访问Office的Access和Excel http://blog.sina.com.cn/s/blog_964237ea0101532x.html 2007 ...
- NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))
在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...
- NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))
NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...
- VS2010 MFC对Excel的操作
这是帮别人做项目遇到的一个问题,的那个是纠结了老长时间,本以为是一件很轻松的事... 首先,这里采用了OLE来对Excel进行操作,网上其实有大把的例子,虽然都可以运行,但是并不能满足项目要求,其实我 ...
- Microsoft.Office.Interop.Excel的用法以及利用Microsoft.Office.Interop.Excel将web页面转成PDF
1.常见用法 using Microsoft.Office.Interop.Excel; 1)新建一个Excel ApplicationClass ExcelApp = New A ...
随机推荐
- IOS客户端的个人中心可以查看自己的博客了。
IOS客户端的个人中心可以查看自己的博客了. 写这篇是为了在客户端显示之用. 下一步实现在客户端发博客.
- USACO Section2.2 Party Lamps 解题报告 【icedream61】
lamps解题报告------------------------------------------------------------------------------------------- ...
- JMeter学习笔记(五) 文件上传接口测试
此次测试的是上传图片接口,我把测试情况整理了一下,其他的上传文件接口都类似. 1.我通过jmeter的录制功能获取到了接口地址以及相关参数,如果有接口文档就会方便很多,此步骤就不多做说明了 2.因为上 ...
- Vue_自定义指令
关于Vue的自定义指令: - 在Vue中除了核心功能默认内置的指令(v-model & v-show) - Vue也允许注册自定义指令. 注意,在 Vue2.0 中,代码复用和抽象的主要形式是 ...
- [转载]unity优化1
官方优化文档--优化图像性能http://docs.unity3d.com/Documentation/Manual/OptimizingGraphicsPerformance.html Unity3 ...
- SPOJ - DQUERY(区间不同数+树状数组)
链接:SPOJ - DQUERY 题意:求给定区间不同数的个数(不更新). 题解:离线+树状数组. 对所求的所有区间(l, r)根据r从小到大排序.从1-n依次遍历序列数组,在树状数组中不断更新a[i ...
- CodeForces-757B Bash's Big Day
题目链接 https://vjudge.net/problem/CodeForces-757B 题目 Description Bash has set out on a journey to beco ...
- [转载]kd tree
[本文转自]http://www.cnblogs.com/eyeszjwang/articles/2429382.html k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据 ...
- 选择MariaDB的压缩数据引擎TokuDB
业务运用场景 数据基本不用update, 不频繁的范围查询 数据存储量较大(为以后准备) 选择占用磁盘较小的db 业务对数据库插入操作频繁,为避免影响其它业务,需要将直播业务的DB 独立出来,选择另外 ...
- Makefile编写记录
近期学习 Linux 需要使用 Makefile,网上搜罗了很多这方面的资料,所里在这里做一个整理. 1.静态模式 看一个例子: objects = foo.o bar.o all: $(object ...