利用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 = 10;
            xls_sheet.Cells.WrapText = true;//自動換行
            xls_sheet.Cells.EntireRow.AutoFit();//行高根据内容自动调整

4:设置列宽

 ((Excel.Range)xls_sheet.Cells[1, "A"]).ColumnWidth = 10.75;

5:合并单元格,并赋值

            rRang = xls_sheet.Range[xls_sheet.Cells[1, 1], xls_sheet.Cells[3, 3]];
            rRang.Merge(Missing.Value);
            rRang.Value = "XXXXXX";
            rRang.Cells.HorizontalAlignment = Excel.Constants.xlCenter;//居中

6:为单个单元格赋值,并为一个矩形设置为中等宽度的边框

 xls_sheet.Cells[1, "D"] = "主旨:";
            rRang = xls_sheet.Range[xls_sheet.Cells[1, "E"], xls_sheet.Cells[1, "R"]];
            rRang.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).Weight = Excel.XlBorderWeight.xlMedium;

7:设置字体大小和粗体

            rRang = xls_sheet.Range[xls_sheet.Cells[1, 1], xls_sheet.Cells[3, "E"]];
            rRang.Columns.Font.Size = 12;
            rRang.Columns.Font.Bold = true;

8:设置单元格颜色和字体颜色(Color 为引用的System.Drawing)

            rRang = xls_sheet.Range[xls_sheet.Cells[4, "N"], xls_sheet.Cells[ITotalCount + 5, "P"]];
            rRang.Columns.Interior.Color = Color.LightGoldenrodYellow;

            rRang = xls_sheet.Range[xls_sheet.Cells[4, "I"], xls_sheet.Cells[ITotalCount+5, "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文件

下面附缩小版的设计图一张,因为涉及公司机密,这些资料会看不清

 

posted @ 2013-11-04 13:42  清风君  阅读(1059)  评论(7编辑  收藏  举报