午夜视频在线观看区二区-午夜视频在线观看视频-午夜视频在线观看视频在线观看-午夜视频在线观看完整高清在线-午夜视频在线观看网站-午夜视频在线观看亚洲天堂

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#WinForm利用Aspose.Cells實現DataGridView導出Excel

admin
2025年2月20日 19:34 本文熱度 423

一、效果展示

二、VS2022
引用Aspose.Cells
界面設計
三、代碼實現
引用
using Aspose.Cells;
導出位置
private void button1_Click(object sender, EventArgs e){	#region   驗證可操作性	//申明保存對話框 	SaveFileDialog dlg = new SaveFileDialog();	//默然文件后綴 	dlg.DefaultExt = "xls ";	//文件后綴列表 	dlg.Filter = "EXCEL文件(*.XLS)|*.xls ";	//默然路徑是系統當前路徑 	dlg.InitialDirectory = Directory.GetCurrentDirectory();	string fileNameString = dlg.InitialDirectory + "\\printExcel.xls";
//打開保存對話框  if (dlg.ShowDialog() == DialogResult.Cancel) return; //返回文件路徑  fileNameString = dlg.FileName;
//驗證strFileName是否為空或值無效  if (fileNameString.Trim() == " ") { return; } //定義表格內數據的行數和列數  int rowscount = dataGridView1.Rows.Count; int colscount = dataGridView1.Columns.Count - 1; //行數必須大于0  if (rowscount <= 0) { MessageBox.Show("沒有數據可供保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
//列數必須大于0  if (colscount <= 0) { MessageBox.Show("沒有數據可供保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
//行數不可以大于65536  if (rowscount > 65536) { MessageBox.Show("數據記錄數太多(最多不能超過65536條),不能保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
//列數不可以大于255  if (colscount > 255) { MessageBox.Show("數據記錄行數太多,不能保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
//驗證以fileNameString命名的文件是否存在,如果存在刪除它  FileInfo file = new FileInfo(fileNameString); if (file.Exists) { try { file.Delete(); } catch (Exception error) { MessageBox.Show(error.Message, "刪除失敗 ", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } #endregion

#region 導出Excel var dataTableTemp = DataGridViewToDataTable(dataGridView1); ToExcel(dataTableTemp, fileNameString); #endregion


MessageBox.Show(fileNameString + "\n\n導出完畢! ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);}
DataGridView轉DataTable
/// <summary>/// DataGridView轉DataTable/// </summary>/// <param name="dataGridView"></param>/// <returns></returns>public static DataTable DataGridViewToDataTable(DataGridView dataGridView){	DataTable dt = new DataTable();	foreach (DataGridViewColumn column in dataGridView.Columns)	{		dt.Columns.Add(column.HeaderText, typeof(string)); // 假設類型以string的方式添加	}	foreach (DataGridViewRow row in dataGridView.Rows)	{		if (!row.IsNewRow)   // 忽略添加空行(通常最后一行是空行)		{			DataRow dataRow = dt.NewRow();			for (int i = 0; i < dataGridView.Columns.Count; i++)			{				dataRow[i] = row.Cells[i].Value;			}			dt.Rows.Add(dataRow);		}	}	return dt;}
數據表保存至Excel
#region 數據表保存至Excel/// <summary>/// DataTable數據表保存至Excel/// </summary>/// <param name="dt">數據源</param>/// <param name="filePath">文件完整路徑</param>public static void ToExcel(DataTable dt, string filePath){	string subTitle = string.Empty;
//新建工作簿   Workbook wb = new Workbook(); //新建工作表   Worksheet ws = wb.Worksheets[0];
ws.Name = dt.TableName; //dt.Columns.Remove("Id");
int rowIndex = 0; int colIndex = 0; int colCount = dt.Columns.Count; int rowCount = dt.Rows.Count;
ws.Cells.SetRowHeight(rowIndex, 25);//設置行高
//創建樣式 Style style = wb.Styles[wb.Styles.Add()];//新增樣式   style.HorizontalAlignment = TextAlignmentType.Center; //單元格內容的水平對齊方式文字居中 style.Font.Name = "宋體"; //字體 //style.Font.IsBold = true; //設置粗體 //style.Font.Color = Color.White;//設置字體顏色 style.Font.Size = 10; //設置字體大小 //style.ForegroundColor = Color.FromArgb(0, 196, 180); //背景色 style.Pattern = BackgroundType.Solid;
style.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; style.Borders[BorderType.TopBorder].Color = Color.Black; style.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; style.Borders[BorderType.BottomBorder].Color = Color.Black; style.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; style.Borders[BorderType.LeftBorder].Color = Color.Black; style.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; style.Borders[BorderType.RightBorder].Color = Color.Black;

//列名的處理 for (int i = 0; i < colCount; i++) { ws.Cells[rowIndex, colIndex].PutValue(dt.Columns[i].ColumnName); ws.Cells[rowIndex, colIndex].SetStyle(style);//給單元格關聯樣式 colIndex++; }

Style style2 = wb.Styles[wb.Styles.Add()];//新增樣式 style2.Font.Name = "宋體";//文字字體 style2.Font.Size = 10;//文字大小  style2.ShrinkToFit = true; style2.VerticalAlignment = TextAlignmentType.Center;
style2.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; style2.Borders[BorderType.TopBorder].Color = Color.Black; style2.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; style2.Borders[BorderType.BottomBorder].Color = Color.Black; style2.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; style2.Borders[BorderType.LeftBorder].Color = Color.Black; style2.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; style2.Borders[BorderType.RightBorder].Color = Color.Black;
rowIndex++;
for (int i = 0; i < rowCount; i++) { ws.Cells.SetRowHeight(rowIndex, 25);//設置行高 colIndex = 0; for (int j = 0; j < colCount; j++) { if (dt.Columns[j].ColumnName == "凈重(T)" || dt.Columns[j].ColumnName == "扣雜(T)" || dt.Columns[j].ColumnName == "標準水分%" || dt.Columns[j].ColumnName == "實測水分%" || dt.Columns[j].ColumnName == "扣水噸位(T)" || dt.Columns[j].ColumnName == "標準灰分%" || dt.Columns[j].ColumnName == "實測灰分%" || dt.Columns[j].ColumnName == "扣灰噸位(T)" || dt.Columns[j].ColumnName == "扣雜后凈重(T)" || dt.Columns[j].ColumnName == "結算重量(T)" || dt.Columns[j].ColumnName == "結算單價(元/T)" || dt.Columns[j].ColumnName == "結算金額(元)") { ws.Cells[rowIndex, colIndex].PutValue((dt.Rows[i][j].ToString() == "" ? 0 : Math.Round(decimal.Parse(dt.Rows[i][j].ToString()), 2)).ToString("0.00")); } else { ws.Cells[rowIndex, colIndex].PutValue(dt.Rows[i][j].ToString() == "" ? null : dt.Rows[i][j].ToString()); } if (i == rowCount - 1) { //style2.ForegroundColor = Color.Gray; style2.Pattern = BackgroundType.Solid; ws.Cells[rowIndex, colIndex].SetStyle(style2);//給單元格關聯樣式 } else { style2.ForegroundColor = Color.White; style2.Pattern = BackgroundType.Solid; ws.Cells[rowIndex, colIndex].SetStyle(style2);//給單元格關聯樣式 } colIndex++; } rowIndex++; }
//設置所有列為自適應列寬  ws.AutoFitColumns();
for (int col = 0; col < colCount; col++) { ws.Cells.SetColumnWidthPixel(col, ws.Cells.GetColumnWidthPixel(col) + 20); }
if (System.IO.File.Exists(filePath)) System.IO.File.Delete(filePath); System.IO.FileStream fs = System.IO.File.Create(filePath); fs.Close(); fs.Dispose(); wb.Save(filePath);}#endregion


閱讀原文:原文鏈接


該文章在 2025/2/21 12:26:34 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产精品视频一区二区噜噜 | 国产av无遮挡喷水白浆网站 | 国产精品一线二线三线区别解析 | 国产自在自线午夜精品视频 | 91精品国产成人网在线观看 | 国产二区亚洲无码 | 国产成人高清在线观看播放 | 国产日韩精品一区在线观看播放 | 国产喷水在线观看 | 国产成人精品久久综合 | 国产精品视频大白屁股冒白浆 | 1000部啪啪未满十八勿入不卡 | 国产精品亚洲w码日韩中文 国产精品亚洲w码日韩中文app | 国产av综合av| 精品国产高清在线观看国产 | 国产三级国产精品国产普男人 | 国产999精品久 | 国产1区2区3区4区免费 | 国产午夜成人精品视频app | 国产一级性爱高清视频 | 国产人妻精品一区二 | 国产精品午夜理论片在线播放 | 国产自在现偷国产精品一区二区 | 国产v综合v亚洲精品无码 | 精品国产尤物一区二区三区 | 成人日韩无| 国产在线精品一区二区三区在线 | 国产黄色毛片久久久 | av无码国产在 | 国产精品专区一区二区三区久久 | 国产成人综合精品亚洲 | a级毛片在线高清观看 | 国产成人无码āā精品一区 | 国产专区无码午夜 | 91精品日韩| 2025天天做夜夜爽视频综合 | 国产91精品看黄网站在线观看 | 国产精品国产三级国产试看 | 2025韩国午夜福利片在线观看 | av嗯啊| av香港三级级在线播放 |