2018年9月9日 星期日

EPPlus Excel好用工具

介紹一個在C#中Excel好用的工具叫做EPPlus,可以產出Excel 或是讀取Excel到資料庫,語法簡潔好用,EPPluse適用Office 2007&2010,以下是簡單的範例。



先到NuGet套件管理員下載安裝EPPlus

using OfficeOpenXml;
using OfficeOpenXml.Style;
using System.Drawing;
using System.IO;

namespace EPPlusDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //檔案路徑
            string filePath = @"C:\csharp\ExcelTest.xlsx";
            //檢查檔案是否存在,存在則刪除
            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }

            //建立ExcelPackge物件
            using (ExcelPackage p = new ExcelPackage())
            {
                //建立test1工作表
                ExcelWorksheet sheet = p.Workbook.Worksheets.Add("test1");
                //用Row Col表示位置
                sheet.Cells[1, 1].Value = "標題一";
                //用Excel欄位表示位置
                sheet.Cells["B1"].Value = "欄位二";
                for (int i = 3; i <= 5; i++)
                {
                    //From Row,From Col,ToRow,To Col表示範圍
                    sheet.Cells[1, 3, 1, 5].Value = "欄位" + i;
                }

                //寫值
                for (int i = 2; i <= 5; i++)
                {
                    for (int j = 1; j <= 5; j++)
                    {
                        sheet.Cells[i, j].Value = $"[{i},{j}]";
                    }
                }

                //設定框線
                sheet.Cells[1, 1, 5, 5].Style.Border.Top.Style = ExcelBorderStyle.Thin;
                sheet.Cells[1, 1, 5, 5].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
                sheet.Cells[1, 1, 5, 5].Style.Border.Left.Style = ExcelBorderStyle.Thin;
                sheet.Cells[1, 1, 5, 5].Style.Border.Right.Style = ExcelBorderStyle.Thin;
                //標題背景顏色
                ExcelRange header = sheet.Cells["A1:E1"];
                header.Style.Fill.PatternType = ExcelFillStyle.Solid;
                header.Style.Fill.BackgroundColor.SetColor(Color.LightGreen);

                using (FileStream fileOutput = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
                {
                    //存檔
                    p.SaveAs(fileOutput);
                }
            }
        }
    }
}

除了框線與顏色設定外,可設定的項目還有很多,例如合併儲存格,字型,輸入公式等等。
附上EPPlus官網


沒有留言:

張貼留言

EPPlus Excel好用工具