網站首頁 編程語言 正文
實現DataTable轉為Excel文件,和上次分享的Excel文件轉為DataTable互為反操作。DataTable轉化為Excel文件是通過傳入一個DataTable類型的參數,然后將傳入的DataTable轉化為Excel文件。實現關鍵代碼如下:
方法一:
////// DataTable數據導出Excel /// /// /// public static void DataTableExport(DataTable data, string filepath) { try { //Workbook book = new Workbook("E:\\test.xlsx"); //打開工作簿 Workbook book = new Workbook(); //創建工作簿 Worksheet sheet = book.Worksheets[0]; //創建工作表 Cells cells = sheet.Cells; //單元格 //創建樣式 Aspose.Cells.Style style = book.Styles[book.Styles.Add()]; style.Borders[Aspose.Cells.BorderType.LeftBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //應用邊界線 左邊界線 style.Borders[Aspose.Cells.BorderType.RightBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //應用邊界線 右邊界線 style.Borders[Aspose.Cells.BorderType.TopBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //應用邊界線 上邊界線 style.Borders[Aspose.Cells.BorderType.BottomBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //應用邊界線 下邊界線 style.HorizontalAlignment = TextAlignmentType.Center; //單元格內容的水平對齊方式文字居中 style.Font.Name = "宋體"; //字體 style1.Font.IsBold = true; //設置粗體 style.Font.Size = 11; //設置字體大小 //style.ForegroundColor = System.Drawing.Color.FromArgb(153, 204, 0); //背景色 //style.Pattern = Aspose.Cells.BackgroundType.Solid; //背景樣式 //style.IsTextWrapped = true; //單元格內容自動換行 //表格填充數據 int Colnum = data.Columns.Count;//表格列數 int Rownum = data.Rows.Count;//表格行數 //生成行 列名行 for (int i = 0; i < Colnum; i++) { cells[0, i].PutValue(data.Columns[i].ColumnName); //添加表頭 cells[0, i].SetStyle(style); //添加樣式 //cells.SetColumnWidth(i, data.Columns[i].ColumnName.Length * 2 + 1.5); //自定義列寬 //cells.SetRowHeight(0, 30); //自定義高 } //生成數據行 for (int i = 0; i < Rownum; i++) { for (int k = 0; k < Colnum; k++) { cells[1 + i, k].PutValue(data.Rows[i][k].ToString()); //添加數據 cells[1 + i, k].SetStyle(style); //添加樣式 } cells[1 + i, 5].Formula = "=B" + (2 + i) + "+C" + (2 + i);//給單元格設置計算公式,計算班級總人數 } sheet.AutoFitColumns(); //自適應寬 book.Save(filepath); //保存 GC.Collect(); } catch (Exception e) { logger.Error("生成excel出錯:" + e.Message); } }
方法二:
public void ToExcel(DataTable dt) { #region 3s var FilePath = @"D:\ToExcel\";//產生Excel文件路徑 DeleteFile(FilePath); //創建全新的Workbook var workbook = new HSSFWorkbook();//一個sheet最多65536行 var count = 0; for (double i = 0; i < Convert.ToDouble(dt.Rows.Count) / Convert.ToDouble(65534); i++)//每個Excel文件的一個頁簽只能存放65536行數據 { var row_index = 0; //創建Sheet workbook.CreateSheet("Sheet" + i); //根據Sheet名字獲得Sheet對象 var sheet = workbook.GetSheet("Sheet" + i); IRow row; row = sheet.CreateRow(row_index); //寫入標題 for (int j = 0; j < dt.Columns.Count; j++) { row.CreateCell(j).SetCellValue(dt.Columns[j].Caption.ToString()); } row = sheet.CreateRow(++row_index); //寫入數據 for (int j = 0; j < (dt.Rows.Count - count > 65534 ? 65534 : dt.Rows.Count - count); j++) { var r = dt.Rows[j + count]; for (int k = 0; k
原文鏈接:https://www.cnblogs.com/wml-it/p/12149040.html
相關推薦
- 2022-11-13 yolov5模型配置yaml文件詳細講解_python
- 2022-06-12 C語言數據結構順序表的進階講解_C 語言
- 2022-12-12 Android?Cocos?Creator游戲開發平臺打包優化實現方案_Android
- 2022-04-26 Android?Jetpack?Compose實現列表吸頂效果_Android
- 2022-04-14 ASP.NET?Core基礎之Main方法講解_基礎應用
- 2023-02-23 Rust個人學習小結之Rust的循環_Rust語言
- 2022-05-02 在kali上安裝AWVS的圖文教程_相關技巧
- 2022-07-03 C語言數組全面詳細講解_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支