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

歡迎訪問 生活随笔!

生活随笔

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

C#

c# applibrary实现一个Sheet表中存放多张DataTable数据

發布時間:2024/9/5 C# 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# applibrary实现一个Sheet表中存放多张DataTable数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、工具類(applibrary.dll)

public class ExcelHelper {/// <summary>/// 文件名/// </summary>public string fileName { get; set; }/// <summary>/// 工作簿列表 /// </summary>public List<WorkSheet> workSheets { get; set; }/// <summary>/// Excel文檔對象/// </summary>public XlsDocument doc { get; set; }public string message { get; set; }public ExcelHelper() {doc = new XlsDocument();workSheets = new List<WorkSheet>();}/// <summary>/// 導出Excel/// </summary>/// <returns></returns>public bool ToExcel() {if (string.IsNullOrEmpty(fileName)) {message = "請輸入文件名";return false;}if (workSheets.Count == 0) {message = "請指定工作簿數據";return false;}doc.FileName = fileName;foreach (var workSheet in workSheets) {AppLibrary.WriteExcel.Worksheet sheet = null;//判斷Worksheet是否存在try {sheet = doc.Workbook.Worksheets[workSheet.name];} catch (Exception ex) {sheet = doc.Workbook.Worksheets.Add(workSheet.name);}AppLibrary.WriteExcel.Cells cells = sheet.Cells;var dt = workSheet.table;for (int j = 0; j <= dt.Columns.Count - 1; j++) {if (workSheet.xf != null) {cells.Add(workSheet.startX, workSheet.startY + j, dt.Columns[j].ColumnName, workSheet.xf);} else {cells.Add(workSheet.startX, workSheet.startY + j, dt.Columns[j].ColumnName);}}for (int i = 0; i <= dt.Rows.Count - 1; i++) {for (int j = 0; j <= dt.Columns.Count - 1; j++) {cells.Add(i + 1 + workSheet.startX, j + workSheet.startY, dt.Rows[i][j].ToEString());}}}doc.Send();return true;}}public class WorkSheet {private int _startX = 1;private int _startY = 1;public string name { get; set; }public DataTable table { get; set; }public int startX {get {return _startX;}set {if (value > 1) {_startX = value;}}}public int startY {get {return _startY;}set {if (value > 1) {_startY = value;}}}public AppLibrary.WriteExcel.XF xf { get; set; }}

2、調用代碼:

       ExcelHelper excel = new ExcelHelper();excel.fileName = batchNo + ".xls";//匯總sql = string.Format(@"SELECT * from SKU WHERE batchNo='{0}'", batchNo);ret = dbHelper.Query(sql);AppLibrary.WriteExcel.XF xfcolumn = excel.doc.NewXF();xfcolumn.Font.Bold = true;xfcolumn.Pattern = 1;xfcolumn.PatternColor = AppLibrary.WriteExcel.Colors.Cyan;excel.workSheets.Add(new WorkSheet() { name = "自動匯總", table = ret.Tables[0], xf = xfcolumn });

3、設置樣式和寬度,表頭和單元格樣式要分開設置,申明兩個XF變量。

#region 設置樣式
       //設置單元格樣式var xf = doc.NewXF();xf.UseBorder = true;xf.LeftLineStyle = 1;xf.RightLineStyle = 1;xf.TopLineStyle = 1;xf.BottomLineStyle = 1;xf.LeftLineColor = AppLibrary.WriteExcel.Colors.Black;xf.RightLineColor = AppLibrary.WriteExcel.Colors.Black;xf.TopLineColor = AppLibrary.WriteExcel.Colors.Black;xf.BottomLineColor = AppLibrary.WriteExcel.Colors.Black;xf.UseFont = true;//設置表頭樣式var thXf = doc.NewXF();thXf.Pattern = 1;thXf.PatternColor = AppLibrary.WriteExcel.Colors.Default1B;thXf.UseBorder = true;thXf.LeftLineStyle = 1;thXf.RightLineStyle = 1;thXf.TopLineStyle = 1;thXf.BottomLineStyle = 1;thXf.LeftLineColor = AppLibrary.WriteExcel.Colors.Black;thXf.RightLineColor = AppLibrary.WriteExcel.Colors.Black;thXf.TopLineColor = AppLibrary.WriteExcel.Colors.Black;thXf.BottomLineColor = AppLibrary.WriteExcel.Colors.Black;thXf.Font.Bold = true;#endregion#region 寬度AddColumnInfo(doc, sheet, 0, 8, 15);AddColumnInfo(doc, sheet, 9, 9, 30);AddColumnInfo(doc, sheet, 10, 15, 15);#endregion

private static void AddColumnInfo(AppLibrary.WriteExcel.XlsDocument doc, AppLibrary.WriteExcel.Worksheet sheet, int start, int end, int width) {AppLibrary.WriteExcel.ColumnInfo colInfo = new AppLibrary.WriteExcel.ColumnInfo(doc, sheet);colInfo.ColumnIndexStart = (ushort)start;colInfo.ColumnIndexEnd = (ushort)end;colInfo.Width = (ushort)(width * 256);sheet.AddColumnInfo(colInfo);}

?

說明:

  1、一個Sheet表中可以存放多張DataTable數據

  2、服務端無需安裝Excel

  3、Send方法直接導出到瀏覽器端,無需先存本地再讀取本地文件轉換成byte輸出

轉載于:https://www.cnblogs.com/len0031/p/6141933.html

總結

以上是生活随笔為你收集整理的c# applibrary实现一个Sheet表中存放多张DataTable数据的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 天天综合久久 | 天天看天天摸 | 蜜臀久久精品久久久久久酒店 | 黄网站色视频免费观看 | 日韩综合一区 | 男人和女人做爽爽视频 | 中文字幕人成人乱码亚洲电影 | 日韩av少妇| 亚洲欧美综合在线观看 | tube日本69第一次 | 人人妻人人做人人爽 | 欧洲日韩一区二区三区 | 国产成人精品一区二区无码呦 | 91在线免费看片 | 少妇天堂网 | 人妻一区二区三 | 一区二区在线精品 | 日韩av三级在线观看 | 亚洲女人天堂成人av在线 | 日韩在线精品视频 | 久草免费在线视频 | 精品国产一区二区三区久久 | 中文字幕一区二区三区人妻 | 黑人一区二区三区 | 四虎精品一区二区三区 | 韩国伦理片在线播放 | 久久久久亚洲av无码专区首jn | 精品福利片 | 国产精品伦一区二区三区免费看 | 视频一区国产 | 成人在线日韩 | 欧美日韩一区二区区 | 成人免费视频国产免费 | 国产在线一级片 | 成都免费高清电影 | 欧美性啪啪 | 久色视频在线观看 | 丰满肉肉bbwwbbww| 久久久人体 | 久久久免费看 | 美女扒开尿口给男人捅 | 麻豆影视在线 | av一区二区三区免费观看 | 欧美色图影院 | 1级av| 精品国产乱码久久久久 | jizzzxxxx| 调教一区二区三区 | 国产精品欧美激情在线 | 亚洲欧美偷拍视频 | 成人午夜免费在线 | 久久久高清 | 久久国产精彩视频 | 丁香婷婷激情五月 | 神秘马戏团在线观看免费高清中文 | 欧美大片xxx | 在线免费日韩av | 欧美在线一区二区视频 | 午夜不卡在线 | 激情另类视频 | 香港三级在线视频 | 黄色特级大片 | 国产精品毛片久久久 | 黄色一级片黄色一级片 | 亚洲午夜精品久久久久久人妖 | 99一区二区 | 成人精品视频在线播放 | 成人在线网址 | 国产精品第6页 | 中文字幕视频观看 | 欧美黄色免费大片 | 麻豆精品国产传媒 | 一级黄色大全 | 波多野结衣一区二区三区免费视频 | 久久高清精品 | 久草欧美 | 免费69视频 | 亚洲精品韩国 | 国产精品第三页 | 国产精品精品国产色婷婷 | 清纯唯美亚洲色图 | 成人春色影视 | 少妇精品| 国产精品999.| 成人免费看片入口 | 日日夜夜免费视频 | 人乳videos巨大吃奶 | 亚洲乱亚洲乱 | 一区视频在线免费观看 | 日本特黄色片 | a级淫片 | 爱情岛av | 国产欧美一区在线观看 | 住在隔壁的她动漫免费观看全集下载 | 啪啪精品| 国产又色又爽又高潮免费 | 日韩一级二级视频 | 成人午夜激情 | 国产精品伦一区二区三区 |