zoukankan      html  css  js  c++  java
  • 利用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文件

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

  • 相关阅读:
    Redis Sentinel 哨兵模式
    Redis 读写分离
    Redis 分布式锁实现
    Redis 缓存的收益和成本
    Redis 实现排行榜
    Spring Boot 使用 Cache 缓存
    Spring Boot 整合 Redis
    Spring Boot 使用阿里巴巴 Druid 数据源
    Spring Boot 整合 JWT
    B1003
  • 原文地址:https://www.cnblogs.com/xiaoshuai1992/p/comexcel.html
Copyright © 2011-2022 走看看