最近公司要批次产出报表,是利用控制台应用程序操作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完整操作的更多相关文章

  1. 利用NPOI组件产Excel完整操作

    最终还是要使用NPOi了.刚开始做的是用com组件,发现如果本机不按照excel就不能使用,后来把其中一支改为了用Itextsharp产生pdf,但是还有几支批次要产生Excel,只能改用NPOI了. ...

  2. 使用ItextSharp产PDF完整操作

    原文 使用ItextSharp产PDF完整操作 记得上回有写到用C#操作Excel(.net 4.0) 很多朋友说推荐用NPOI,的确,用微软自带的操作execl会有很大的问题.客户的主机不愿意安装e ...

  3. 利用kettle组件导入excel文件到数据库

    利用kettle组件导入excel文件到数据库 1.     实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...

  4. 利用ItextSharp产PDF完整操作

    记得上回有写到用C#操作Excel(.net 4.0) 很多朋友说推荐用NPOI,的确,用微软自带的操作execl会有很大的问题.客户的主机不愿意安装excel, 这时我才意识到用自带组件完全是不行的 ...

  5. 猜想-未做 利用office组件读取excel数据

    ---未实际使用过 用SQL-Server访问Office的Access和Excel http://blog.sina.com.cn/s/blog_964237ea0101532x.html 2007 ...

  6. NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))

    在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...

  7. NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))

    NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...

  8. VS2010 MFC对Excel的操作

    这是帮别人做项目遇到的一个问题,的那个是纠结了老长时间,本以为是一件很轻松的事... 首先,这里采用了OLE来对Excel进行操作,网上其实有大把的例子,虽然都可以运行,但是并不能满足项目要求,其实我 ...

  9. Microsoft.Office.Interop.Excel的用法以及利用Microsoft.Office.Interop.Excel将web页面转成PDF

    1.常见用法           using Microsoft.Office.Interop.Excel; 1)新建一个Excel ApplicationClass ExcelApp = New A ...

随机推荐

  1. IOS客户端的个人中心可以查看自己的博客了。

    IOS客户端的个人中心可以查看自己的博客了. 写这篇是为了在客户端显示之用. 下一步实现在客户端发博客.

  2. USACO Section2.2 Party Lamps 解题报告 【icedream61】

    lamps解题报告------------------------------------------------------------------------------------------- ...

  3. JMeter学习笔记(五) 文件上传接口测试

    此次测试的是上传图片接口,我把测试情况整理了一下,其他的上传文件接口都类似. 1.我通过jmeter的录制功能获取到了接口地址以及相关参数,如果有接口文档就会方便很多,此步骤就不多做说明了 2.因为上 ...

  4. Vue_自定义指令

    关于Vue的自定义指令: - 在Vue中除了核心功能默认内置的指令(v-model & v-show) - Vue也允许注册自定义指令. 注意,在 Vue2.0 中,代码复用和抽象的主要形式是 ...

  5. [转载]unity优化1

    官方优化文档--优化图像性能http://docs.unity3d.com/Documentation/Manual/OptimizingGraphicsPerformance.html Unity3 ...

  6. SPOJ - DQUERY(区间不同数+树状数组)

    链接:SPOJ - DQUERY 题意:求给定区间不同数的个数(不更新). 题解:离线+树状数组. 对所求的所有区间(l, r)根据r从小到大排序.从1-n依次遍历序列数组,在树状数组中不断更新a[i ...

  7. CodeForces-757B Bash's Big Day

    题目链接 https://vjudge.net/problem/CodeForces-757B 题目 Description Bash has set out on a journey to beco ...

  8. [转载]kd tree

    [本文转自]http://www.cnblogs.com/eyeszjwang/articles/2429382.html k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据 ...

  9. 选择MariaDB的压缩数据引擎TokuDB

    业务运用场景 数据基本不用update, 不频繁的范围查询 数据存储量较大(为以后准备) 选择占用磁盘较小的db 业务对数据库插入操作频繁,为避免影响其它业务,需要将直播业务的DB 独立出来,选择另外 ...

  10. Makefile编写记录

    近期学习 Linux 需要使用 Makefile,网上搜罗了很多这方面的资料,所里在这里做一个整理. 1.静态模式 看一个例子: objects = foo.o bar.o all: $(object ...