日韩性视频-久久久蜜桃-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免费观看不卡 | 捆绑调教在线观看 | 日韩免费av网站 | 黄色一级片欧美 | 亚洲另类一区二区 | 草莓视频成人在线 | 极品人妻一区二区三区 | 国产资源在线看 | 91小视频| 国产 日韩 欧美在线 | 中文在线永久免费观看 | 免费的三级网站 | 欧美日韩精品一区二区在线观看 | jzzijzzij亚洲成熟少妇在线播放 狠狠躁日日躁夜夜躁2022麻豆 | 国内老熟妇对白hdxxxx | 四虎av影视 | 欧美日本道 | 亚洲成人av电影网站 | 精品国产鲁一鲁一区二区张丽 | 成人一二区 | 久久天天操 | 亚洲精品tv | 天堂视频在线免费观看 | 欧美日韩精品中文字幕 | 久久大奶| 久久不卡影院 | 天天躁日日躁狠狠躁免费麻豆 | 91视频免费在线观看 | 人人九九| 亚洲天堂久久久 | aaa国产视频 | 天天射天天射 | 欧美丝袜一区二区三区 | 性生交大片免费看l | 久久精品23 | 国产乱人伦app精品久久 | 欧美36p| 青青草国产 | 国产又粗又黄 | 成人免费视频国产免费 | 国产电影免费观看高清完整版视频 | 欧美大尺度做爰啪啪床戏明星 | 亚洲黄色精品视频 | 亚洲产国偷v产偷v自拍涩爱 | 天天操天天射天天舔 | 黑人vs日本人ⅹxxxhd | 无码人妻少妇伦在线电影 | 日本三不卡 | 日韩在线综合 | 强辱丰满人妻hd中文字幕 | 日本v片| 亚洲人天堂 | 亚洲美女性生活视频 | 国产无套精品 | 在线观看日本一区二区 | 欧美日韩精品久久久免费观看 | 三级精品视频 | 国产手机在线观看 | 欧美日韩123区 | 亚洲品质自拍视频 | 99久久久无码国产精品免费 | 在线观看黄色片网站 | 国产美女福利 | 国产伦乱视频 | 午夜寂寞影院在线观看 | 欧美日韩综合一区二区三区 | 亚洲精品国产a | 亚洲av永久无码精品三区在线 | 久久发布国产伦子伦精品 | 日韩 欧美 国产 综合 | 中文字幕激情小说 | 在线播放你懂得 | 成人97 | 国产日韩精品中文字无码 | 黄视频免费看在线 | 免费成人国产 | 好看的中文字幕电影 | 中文字幕第八页 | 影音先锋成人在线 | 欧美xxxx黑人xyx性爽 | 国产91页| 国产乱淫av一区二区三区 | 欧美xo影院| 农村激情伦hxvideos | 国产精品久久91 | 久热这里只有 | 欧美黄色大片免费看 | 日韩在线视频观看免费 | 一区二区三区免费视频观看 | 99久久久成人国产精品 | 成人黄色激情视频 | 欧美与黑人午夜性猛交久久久 | 97色婷婷| 欧美精品videos另类日本 | 亚洲午夜久久久久久久久久久 | 亚洲精品97久久中文字幕无码 | 欧美性生活一区二区三区 |