C#生成Excel报表 用MyXls组件生成更完美
生活随笔
收集整理的這篇文章主要介紹了
C#生成Excel报表 用MyXls组件生成更完美
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?在后臺調用excel組件,生成Excel,雖然可以對Excel文件進行完全控制,可以生成任何復雜的格式,但是有個很大的缺點,這種方式會產生很多Excel進程,很難完全清除掉,特別是在出錯的時候,可能會使整個服務器崩潰。本文為大家介紹一個C#寫的開源組件,并簡單說下office2003和以上版本支持的XML格式。
?一 操作Excel二進制格式
??? OpenOffice.org發布過的倆個文檔Excel File Format (BIFF8)Specification和Microsoft CompoundDocument (OLE2) Format Specification對Excel的二進制格式做了一個比較詳細的說明,依靠這些信息,我們可以直接操作Office二進制格式文檔。
? MyXls是一個C#寫的開源組件,可以用來生成具有很多表格且包含格式的Excel文件。它提供了一套基于對象的API,非常容易使用。
http://sourceforge.net/project/showfiles.php?group_id=205384&package_id=245371
以下是一個事例子。。
??????protected?void?Page_Load(object?sender,?EventArgs?e)
????????{
???????????????string?strSql?=?"SELECT?TRADE_DATE?[Date],TOPEN?[Open],Thigh?High,tlow?[Low]?FROM?DAY_QUOTATION?where?SEC_CODE='1'?and?TRADE_DATE>='20070411'?order?by?TRADE_DATE?desc";??//Sql語句
????????????DataSet?ds?=?SqlHandle.ExecuteReturnDataSet(CommandType.Text,?strSql,?null);
????????????xlsGridview(ds,?"data");//調用xlsGridview方法生成Excel報表
????????}
?????????/**////?<summary>
????????///?綁定數據庫生成XLS報表
????????///?</summary>
????????///?<param?name="ds">獲取DataSet數據集</param>
????????///?<param?name="xlsName">報表表名</param>
????????private?void?xlsGridview(DataSet?ds,?string?xlsName)
????????{
????????????XlsDocument?xls?=?new?XlsDocument();
????????????
????????????int?rowIndex?=?1;
????????????int?colIndex?=?0;
???????????
????????????System.Data.DataTable?table?=?ds.Tables[0];
????????????Worksheet?sheet?=?xls.Workbook.Worksheets.AddNamed("sheet");//狀態欄標題名稱
????????????Cells?cells?=?sheet.Cells;
????????????foreach?(DataColumn?col?in?table.Columns)
????????????{
????????????????colIndex++;
????????????????//sheet.Cells.AddValueCell(1,colIndex,col.ColumnName);//添加XLS標題行
????????????????cells.AddValueCell(1,?colIndex,col.ColumnName);
????????????}
????????????foreach?(DataRow?row?in?table.Rows)
????????????{
????????????????rowIndex++;
????????????????colIndex?=?0;
????????????????foreach?(DataColumn?col?in?table.Columns)
????????????????{
????????????????????colIndex++;
????????????????????//sheet.Cells.AddValueCell(rowIndex,?colIndex,?row[col.ColumnName].ToString());//將數據添加到xls表格里
????????????????????Cell?cell=?cells.AddValueCell(rowIndex,?colIndex,?Convert.ToDouble(row[col.ColumnName].ToString()));//轉換為數字型
????????????????????//如果你數據庫里的數據都是數字的話?最好轉換一下,不然導入到Excel里是以字符串形式顯示。
????????????????????cell.Font.FontFamily?=?FontFamilies.Roman;?//字體
????????????????????cell.Font.Bold?=?true;??//字體為粗體????????????
????????????????}
????????????}
????????????xls.Send();
????????}
轉載于:https://www.cnblogs.com/Lucky2007/archive/2008/04/15/1154752.html
總結
以上是生活随笔為你收集整理的C#生成Excel报表 用MyXls组件生成更完美的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL SERVER中一些常见性能问题的
- 下一篇: MY MOBILER v1.23 - 类