<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
實現DataTable轉為Excel檔案,和上次分享的Excel檔案轉為DataTable互為反操作。DataTable轉化為Excel檔案是通過傳入一個DataTable型別的引數,然後將傳入的DataTable轉化為Excel檔案。實現關鍵程式碼如下:
方法一:
/// <summary> /// DataTable資料匯出Excel /// </summary> /// <param name="data"></param> /// <param name="filepath"></param> 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 <dt.Columns.Count; k++) { row.CreateCell(k).SetCellValue(r[k].ToString()); //如果是數位,判斷是否需要轉換為數位 //if (IsNumeric(r[k].ToString())) //{ // row.CreateCell(k).SetCellValue(Convert.ToDouble(r[k].ToString())); //} //else //{ // row.CreateCell(k).SetCellValue(r[k].ToString()); //} } row = sheet.CreateRow(++row_index); } count += row_index - 2; } //儲存Workbook方式一: 以檔案形式儲存到伺服器中(每次匯出都會生成一個檔案,慎重使用) var FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; var sw = File.Create(FilePath + FileName); workbook.Write(sw); sw.Close(); var EC = new ExcelConverter(); EC.WebopenExcel(Response, FilePath + FileName); #endregion }
到此這篇關於C#把DataTable匯出為Excel檔案的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45