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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#生成Excel报表 用MyXls组件生成更完美

發布時間:2024/4/14 C# 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#生成Excel报表 用MyXls组件生成更完美 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


?在后臺調用excel組件,生成Excel,雖然可以Excel文件進行完全控制,可以生成任何復雜的格式,但是有個很大的缺點,這種方式會產生很多Excel進程很難完全清掉,特別是在出錯的時候,可能會使整個服務器崩潰。本文為大家介紹一個C#寫的開源組件,并簡單說下office2003和以上版本支持的XML格式。

?操作Excel二進制格式

??? OpenOffice.org發布過的倆個文檔Excel File Format (BIFF8)SpecificationMicrosoft CompoundDocument (OLE2) Format SpecificationExcel的二進制格式做了一個比較詳細的說明,依靠這些信息,我們可以直接操作Office二進制格式文檔。

? MyXls是一個C#寫的開源組件,可以用來生成具有很多表格且包含格式的Excel文件。它提供了一套基于對象的API,非常容易使用。

MyXls這個組件的DLL 和代碼 可以在這下載到:
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组件生成更完美的全部內容,希望文章能夠幫你解決所遇到的問題。

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