日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

使用EPPlus(C#)读写Excel

發布時間:2023/12/24 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 使用EPPlus(C#)读写Excel 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. EPPlus概述

EPPlus 是使用Open Office XML格式(xlsx)讀寫Excel 2007 / 2010文件的.net開發庫。 官網:
http://epplus.codeplex.com/ EPPlus 支持:

  • 單元格范圍
  • 單元格樣式(邊框,顏色,填充,字體,數字,對齊)
  • 圖表
  • 圖片
  • 形狀
  • 批注
  • 表格
  • 保護
  • 加密
  • 數據透視表
  • 數據驗證
  • 條件格式
  • VBA
  • 公式計算
  • 更多……

2. EPPlus核心類介紹

2.1ExcelPackage類

ExcelPackage是EPPlus的入口類,解析一個Excel文件,生成ExcelWorkbook對象來表示一個Excel。該類實現了IDisposable接口,也就是說可以使用using進行對象釋放。

10個構造函數,下面是常用的3個:

public ExcelPackage();

public ExcelPackage(FileInfo newFile);

public ExcelPackage(Stream newStream);

不管構造函數中傳入的參數是否有效,該類的Workbook屬性都會自動創建,無須擔心空指針問題。

2.2 ExcelWorkbook類

ExcelWorkbook類表示了一個Excel文件,其Worksheets屬性對應著Excel的各個Sheet。Worksheets屬性會自動創建,不用擔心空指針異常,但是其Count可能為0。

ExcelWorkbook的Properties屬性可以對Office的一些屬性進行設置,例如:

public string Author { get; set; }
public string Title { get; set; }
public string Comments { get; set; }

注意:在獲取具體的Sheet時,索引號從1開始,例如:

ExcelWorksheet sheet = package.Workbook.Worksheets[1];

2.3 ExcelWorksheet類

一些常用屬性:

sheet.DefaultColWidth = 10; //默認列寬
sheet.DefaultRowHeight = 30; //默認行高
sheet.TabColor = Color.Blue; //Sheet Tab的顏色
sheet.Cells.Style.WrapText = true; //單元格文字自動換行

對行列的增刪操作:

public void InsertRow(int rowFrom, int rows);

public void InsertColumn(int columnFrom, int columns);

public void DeleteRow(int rowFrom, int rows);

public void DeleteColumn(int columnFrom, int columns);

設置指定行或列的樣式(寬、高、隱藏、自動換行、數字格式、鎖定等):

sheet.Column(1).Width = 10;
sheet.Row(1).Height = 30;

sheet.Column(1).Hidden = true;
sheet.Row(1).Hidden = true;

sheet.Column(1).Style.WrapText = true;

sheet.Column(1).Style.Numberformat.Format = "$#,###.00";

sheet.Row(1).Style.Locked = true;

自適應寬度設置:

public void AutoFit();
public void AutoFit(double MinimumWidth);
public void AutoFit(double MinimumWidth, double MaximumWidth);
//未傳入MinimumWidth時,使用Sheet的DefaultColWidth作為最小值,此時若沒有提前對DefaultColWidth進行設置就會報錯
//此方法時對自動換行和合并的單元格無效

2.4 ExcelRange類

3個獲取單元格范圍的方法:

public ExcelRange this[string Address] { get; }
//Address是指"A1:C5"這種格式

public ExcelRange this[int Row, int Col] { get; }

public ExcelRange this[int FromRow, int FromCol, int ToRow, int ToCol] { get; }

重要屬性:

public object Value { get; set; }
//獲取或設置單元格的值

復制單元格:

public void Copy(ExcelRangeBase Destination);

從二維數據集合中裝載數據:

public ExcelRangeBase LoadFromCollection<T>(IEnumerable<T> Collection);

public ExcelRangeBase LoadFromDataReader(IDataReader Reader, bool PrintHeaders);

public ExcelRangeBase LoadFromText(FileInfo TextFile);
//這里的文件是指CSV文件

//數據裝載時,會與ExcelRange的行列進行對應,將值設置到其中,這些單元格沒有樣式和數字格式

2.5 樣式

樣式包括字體、顏色、對齊、邊框等。

range.Style.Fill.PatternType = ExcelFillStyle.Solid;
range.Style.Fill.BackgroundColor.SetColor(Color.Gray);
//在設置Style.Fill的其他屬性之前,必須設置PatternType 
//設置了Style.Fill.PatternType之后,必須設置Style.Fill.BackgroundColor,否則單元格背景為黑色
//注意Style.Fill.BackgroundColor是個只讀屬性,需要通過SetColor()方法設置顏色
range.Font.Color.SetColor(Color.Red);
range.HorizontalAlignment = ExcelHorizontalAlignment.CenterContinuous;

2.6 數字格式

range.Style.Numberformat.Format = "$#,###.00";

使用數字格式時,一定要自行檢查格式的正確性,因為產生的過程中EPPlus不會檢查其正確性,如果格式有錯,在打開產生的Excel文件時會提示文件格式不正確。

2.7公式

sheet.Cells[1, 3].range.Formula = "AVERAGE(A1, B1)";
sheet.Cells[1, 3].FormulaR1C1 = "AVERAGE(RC[-2], RC[-1])";
//以上兩個公式表達意思相同——對于第一行,C列的值等于A列和B列的平均值

使用公式和使用數字格式有同樣的注意事項,需要自行檢查正確性。

建議總是記錄當前Sheet有多少行和列,方便使用公式時定位單元格。

建議對公式相關代碼進行注釋,有助于其他程序員理解。

3. 代碼示例

下面的鏈接是VS2015的Solution:

WPF Demo:http://pan.baidu.com/s/1skrCdtV

MVC Demo:http://pan.baidu.com/s/1i3MK8tf

運行效果如圖:

點擊Export可以把表格中顯示的內容導出到Excel。

點擊RefreshTable可以刷新表格的內容。

點擊Import把導出的Excel再導入進來。

Demo中沒有對Excel的內容做完整的驗證,如果手動修改了Excel格式的話,可能會報錯。

4. 參考鏈接

http://epplus.codeplex.com/

https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt1

https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt2

https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt3

https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt4

https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt5

https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt6

https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt7

https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt8

http://www.alanzeng.cn/2016/01/use-epplus-read-write-excel/

總結

以上是生活随笔為你收集整理的使用EPPlus(C#)读写Excel的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。