程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> .NET平台開源文檔與報表處理組件包括Execel PDF Word等,.netexecel

.NET平台開源文檔與報表處理組件包括Execel PDF Word等,.netexecel

編輯:C#入門知識

.NET平台開源文檔與報表處理組件包括Execel PDF Word等,.netexecel


  在前2篇文章這些.NET開源項目你知道嗎?讓.NET開源來得更加猛烈些吧 和這些.NET開源項目你知道嗎?讓.NET開源來得更加猛烈些吧!(第二輯)中,大伙熱情高漲。再次拿出自己的私貨,在.NET平台處理文檔相關的開源組件。文檔處理在開發中是一個非常常見的任務了,例如導出Excel,導出Word,生成PDF報表等等。那今天就看看下面這些.NET開源項目你知道不?如果有用,千萬不要忘記推薦哦。同時個人能力有限,希望大家補充。

.NET開源目錄:【目錄】本博客其他.NET開源項目文章目錄

 本文原文地址:這些.NET開源項目你知道嗎?(第三緝).NET開源文檔及報表處理

1.Excle神器NPOI

    NPOI 是 POI 項目的 .NET 版本。POI是一個開源的Java讀寫Excel、WORD等微軟OLE2組件文檔的項目。NPOI讓.NET平台擁有了一個比較完善的讀寫Excel的工具。使用量非常廣泛,應該是開源的.NET Excel讀寫工具中曝光度最高的一個吧,沒有之一。

    使用NPOI的優勢有:完全免費使用,包含了大部分EXCEL的特性(單元格樣式、數據格式、公式等等),支持處理的文件格式包括xls, xlsx, docx.采用面向接口的設計架構( 可以查看 NPOI.SS 的命名空間),同時支持文件的導入和導出,你不需要在服務器上安裝微軟的Office,可以避免版權問題。使用起來比Office PIA的API更加方便,更人性化。那麼還等什麼呢?下面就是我第一次使用NPOI做的一個日報表工具,裡面的單元格合並都是在程序中動態完成的,過程很艱辛,但結果很美好,目前已經使用了2年,穩定無bug,非常給力啊。

官方網站:http://npoi.codeplex.com/

                 https://github.com/tonyqus/npoi

官方教程:http://www.npoi.info/

2.NPOI擴展—NPOI.CSS

    NPOI.CSS是一個可以在使用NPOI時用類CSS的方法設置單元格樣式的NPOI擴展,只支持.NET4及以上版本的項目。這個擴展是為了方便在使用的時候設置單元格及其相關格式樣式,可以使用類似Css的方式,非常給力。看看下面的代碼:

1 cell.CSS("color:red;font-weight:bold;font-size:11;font-name:宋體;border-type:thin;")

官方網站:https://github.com/qihangnet/npoi.css

3.yjinglee.office

  yjinglee.office用於.Net平台下的Excel操作,主要封裝NPOI對外提供更簡單實用的API,提供以下功能點:

1.讀取Excel數據轉換成對象集合
2.寫入集合到Excel,並提供可以Excel樣式定義

  看看一段讀取Excel的代碼:

1 2 3 4 5 6 7 8 9 10 var Reports = new Collection(); for (var i = 0; i < 10; i++) {     Reports.Add(new Report {Id = i*100, Name = Guid.NewGuid().ToString()}); } var excel = new Excel(new DefaultStyle());//創建Excel實例,可以傳遞不同的樣式實例 excel.CreateSheet("Test");//創建一個Sheet,命名為Test excel.WriteObject(Reports, 0, 0);//在Sheet0中的第0行寫入集合 excel.SetColumnWidth(0, 0, new [] {5, 35});//在Sheet0的第0列開始依次設置列寬 excel.WriteFile(Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "demo.xlsx"));//保存文件

4.ExcelReport報表引擎

     ExcelReport是一款基於NPOI開發的報表引擎組件。它基於關注點分離的理念,將數據與樣式、格式分離。讓模板承載樣式、格式等NPOI不怎麼擅長且實現繁瑣的信息,結合NPOI對數據的處理的優點將Excel報表的生成化繁為簡。同時,對報表組成的基本元素進行了抽象,進一步簡化了Excel報表的生成過程。

官方網站:https://github.com/hanzhaoxin/ExcelReport

介紹文章:http://www.cnblogs.com/hanzhaoxin/p/4472860.html

5.Epplus

    Epplus是一個使用Open Office XML(Xlsx)文件格式,讀寫Excel 2007/2010文件的開源組件。和NPOI相比,它更早的支持了Xlsx格式,而NPOI支持Excel 2003更好,現在新版本的NPOI也開始支持Xlsx了。所以他們兩個還是有一點區別的。Epplus我沒用過,但很早就聽說了,也是使用非常官方的一個,目前也一直在更新。看大家的使用需求了。可以嘗試一下。支持的范圍也很廣,例如:單元格合並,單元格樣式,圖表(這個NPOI目前還不是很好),表格,數據驗證,公式,VBA等等。

官方網站:http://epplus.codeplex.com/

6.LinqToExcel

    LinqToExcel是一個.NET平台下開源項目,它主要實現了LINQ的語法查詢Excel電子表格。類型之前的LINQToXXX如果你是LINQ語法糖愛好者那最適合你。例如,下面代碼,查詢電子表格的頭:

1 2 3 4 var excel = new ExcelQueryFactory("excelFileName"); var indianaCompanies = from in excel.Worksheet<Company>()                        where c.State == "IN"                        select c;

官方網站:https://github.com/paulyoder/

7.NetOffice組件

  NetOffice組件比較特別,是一個操作Office的強大組件,包括處理Office, Excel, Word, Outlook, PowerPoint, Access, Project, Visio等,所以支持非常全面。但是這個組件並不是完全單獨寫的,而是調用Microsoft Office的互操作程序集以及VSTO,也就是進行了一個深度的封裝,從而讓你不需要安裝這些東西,只需要拷貝相應的程序集就可以了。目前一共包括16個操作的程序集。根據你的需要可以選擇相應的程序集。它有幾個優點:

1.沒有Office的版本限制;
2.支持Office2000,2003,2007,2010,2013版本,就是支持全部Office的版本,足夠強大;
3.支持版本之間的獨立開發
4.操作語法和Microsoft的互操作程序集的語法是一樣的;因此更加易於學習和使用;
5.如果你熟悉Office對象模型,你可以使用你現有的PIA代碼,不需要重新學習;
6.優化了一些COM操作的代碼
7.可以在.NET2.0及以上環境使用;
8.部署方便,不需要注冊,沒有依賴的程序集

  其他的功能看官方文件介紹,如果有空,大家對這個需求強烈,可以寫文章專門介紹。

官方網站:http://netoffice.codeplex.com/ 

8.Word文檔讀寫工具Docx

    DocX是一個以非常直觀簡單的方式操作Word 2007/2010文件的輕量級.NET組件。它的速度非常快,而且不需要安裝微軟的Office軟件。在中國,免費並且小巧的WPS有足夠的理由讓很多用戶放棄龐大的Office,那在實際軟件開發過程中,這玩意就有用處了。遺憾是不支持2003,但總歸是被淘汰的趨勢,而且用WPS,也沒有啥版本的區別。目前支持在文件中插入、刪除和替代文本,支持所有的文本格式,如字體,下劃線,高亮等;支持插入圖片、超鏈接、表格、頁眉頁腳以及自定義屬性等;支持類似JQuery的鏈式寫法,很方便編程開發。

    相比Excel來說,開源的操作Doc文檔的組件比較少,這個組件只能勉強滿足一些基本功能吧。遇到一些高級的,坑還是很多。但總的來說,常規支持是第一步吧,該項目目前也在更新中,期待更加完善。我在2013年曾經寫過一篇介紹基本使用的文章:【原創】開源Word讀寫組件DocX介紹與入門 

    官方網站:http://docx.codeplex.com/  

9.PDF處理組件PDFsharp

    生成PDF文件格式的文檔,大家肯定有想過,很多人項目中也肯定用過,方法、組件肯定有很多。但是.NET平台開源免費的不多,最好用的應該是ItextPDF,不過人家是非商業免費,所以我們就排除在外吧。看看免費的,這個PDFSharp是目前比較完善,而且還在持續更新的。支持功能有:

    可以使用.NET編程語言動態創建PDF文檔,

    很容易使用對象模型來構建文檔,

    全部用C#重寫設計和編寫代碼,

    可以生成PDF文件和顯示在窗體或者打印,

    使用同一源文件,可以修改、合並或者分割PDF文件,

    可以控制圖片的透明度,嵌入了字體等等。支持總體算全面吧,不過沒有親自測試過。

    官方網站:http://www.pdfsharp.net/

10.MigraDoc文檔生成器

    MigraDoc是一個.NET平台開源的文檔生成器,幾乎支持所有的文字處理功能。你只需要添加段落,表格,或者圖表到節中,使用書簽來創建鏈接,表格內容,索引等等。MigraDoc會自動進行分頁和布局,可以生成PDF,XPS以及RTF文檔格式。總的來說,是一個更簡單類型的通用文檔生成工具。它的官方網站和PDFsharp是一起的,目前也是在更新中。

    官方網站:http://www.pdfsharp.net/

11.PdfReport報表工具

    PdfReport 是一個支持code-first的報表引擎,建立在開源項目iTextSharp和 EPPlus基礎上。支持.net 3.5以上,看看項目的一個圖片:

    官方網站:http://pdfreport.codeplex.com/

12.文件差異比較diffplex

    diffplex是一個開源的C#文本差異比較軟件。支持.NET 4.0, Silverlight 5.0, Windows 8.0, Windows Phone 8.0, Windows Phone Appx 8.1等環境。如下圖所示:

    官方網站:https://github.com/mmanela/diffplex

13.ReportGenerator

  ReportGenerator可以將OpenCover, PartCover, Visual Studio 或者NCover生成的XML報表轉換為可讀性更加好的格式。上面這幾個工具都是代碼覆蓋率分析工具。轉換後的報表有以下格式:

1.HTML, HTMLSummary

2.XML, XMLSummary

3.Latex, LatexSummary

4.TextSummary

5.Custom reports

  該組件目前一直在持續進行更新,對於專門做測試方面的人應該有些幫助,曾經也看到過文章使用這個組件來展示分析後的報表,不過不太懂,不去深究。

    官方網站:https://github.com/danielpalme/ReportGenerator

14.BusyReports 

  BusyReports是一個非常方便的從SSRS Web 服務生成報表的應用程序。BusyReports提供了一個GUI界面,可以方便配置報表參數,電子郵件,文件路徑等。這些配置信息存儲在4個易於編輯的表格中。該組件與SQL Server數據驅動訂閱類似,但刪除了其中一些限制。該組件目前一直在更新。看下面的 GUI 配置界面:

官方網站:http://busyreports.codeplex.com/

15.Seal Report

  Seal Report應該是上面這幾個之中最好用,最常用的一個。它提供了一個完整的從其他任何數據庫產生報表的架構。該產品主要關注於容易安裝和報表設計,一旦安裝好,報表很快就可以建立並且發布。該組件完全開源,使用C#語言編寫。其主要特征有,1.動態SQL數據源:可以使用SQL或讓Seal引擎構建動態SQL用於查詢數據庫,2.本地數據透視表:直接在數據透視表簡單的拖放元素,並將它們顯示在報表中,還支持HTML5圖表等,詳細去官網看看,下面看2張報表設計和報表結果的截圖:

報表結果:

官方網站:http://sealreport.codeplex.com/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved