[C#]Excel画斜线以及Excel宏的利用

本文详细介绍了如何使用C#代码在Excel中绘制斜线,包括录制宏、执行画线操作、代码实现等步骤,并展示了生成Excel文件后的实际效果。
我们经常需要把数据导出到Excel,导出过程中很可能需要对导出后的Excel格式进行控制,这里我谨以简单的画斜线为例对C#如何导出Excel&&Excel格式进行简单控制做一个简单的记录

首先我一开始并不知道如何用C#实现在Excel中画斜线,而Excel里面自带的宏帮了我大忙,我们可以充分利用这个宏来记录下操作的源代码,首先录制宏,然后在Excel中做自己需要的动作(我这里就做了画斜线),停止录制后点查看宏可查看到刚刚所有动作的源代码,如图示


录制宏


动作(画斜线)


停止录制



有了这些源代码,如何用C#实现就有思路了,源代码如下

            #region 将方法中用到的所有Excel变量声明在方法最开始,以便最后统一回收
            Excel.ApplicationClass oExcel = new Excel.ApplicationClass();
            Excel.Workbook obook = null;
            Excel.Worksheet oSheet = null;
            Excel.Range range = null;
            #endregion

            obook = oExcel.Workbooks.Add(true);
            oSheet = (Excel.Worksheet)obook.Worksheets[1];

            //取得“A1”单元格
            range = (Excel.Range)oSheet.get_Range("A1", System.Reflection.Missing.Value);

            //可以取一个区域范围,注意这里的Index是从1开始,而不是0
            //range = (Excel.Range)oSheet.get_Range(oSheet.Cells[1, 1], oSheet.Cells[1, col]);

            range.HorizontalAlignment = Excel.Constants.xlGeneral;//默认对齐
            range.VerticalAlignment = Excel.Constants.xlCenter;//居中对齐
            range.Font.Name = "Arial"; //字体
            range.Font.Size = 12;
            range.Font.Bold = true;
            range.Font.Color = ColorTranslator.ToOle(Color.White); //注意到Excel的颜色都要转换一下
            range.ColumnWidth = 40; //列宽
            range.RowHeight = 100; //行高
            range.Interior.Color = ColorTranslator.ToOle(Color.FromArgb(79, 129, 189));//背景
            range.Borders[Excel.XlBordersIndex.xlDiagonalDown].LineStyle = Excel.XlLineStyle.xlContinuous; //斜线,由Excel的宏代码翻译而来
            oSheet.Cells[1, 1] = "                                    交叉列名2\r\n\r\n\r\n交叉列名1"; //添加文本

            obook.SaveCopyAs(@"D:\Diagonal.xls");//保存到指定文件
            obook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value);

            // 调用ReleaseComObject方法释放方法中用到的所有的Excel 变量 
            System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obook);

            oExcel.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);

            GC.Collect();
生成Excel后的效果



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值