使用 Aspose.Cells導出多個Sheet的Excel


  1 public static void MydataTest()
  2         {
  3             //打開保存的位置
  4             FolderBrowserDialog BrowDialog = new FolderBrowserDialog();
  5             BrowDialog.ShowNewFolderButton = true;
  6             BrowDialog.Description = "請選擇Excel保存位置";
  7             if (BrowDialog.ShowDialog() == DialogResult.OK)
  8             {
  9 
 10                 try
 11                 {
 12                     string MYpath = BrowDialog.SelectedPath;
 13                     Workbook workbook = new Workbook();
 14                     //清除頁先 要不然 新建就有一個sheet
 15                     workbook.Worksheets.Clear();
 16                     #region   樣式 
 17                     //為標題設置樣式    
 18                     Style styleTitle = workbook.Styles[workbook.Styles.Add()];//新增樣式
 19                     styleTitle.HorizontalAlignment = TextAlignmentType.Center;//文字居中
 20                     styleTitle.Font.Name = "宋體";//文字字體
 21                     styleTitle.Font.Size = 18;//文字大小
 22                     styleTitle.Font.IsBold = true;//粗體 
 23                     //樣式2
 24                     Style style2 = workbook.Styles[workbook.Styles.Add()];//新增樣式
 25                     style2.HorizontalAlignment = TextAlignmentType.Center;//文字居中
 26                     style2.Font.Name = "宋體";
 27                     style2.Font.Size = 14;
 28                     style2.Font.IsBold = true;
 29                     style2.IsTextWrapped = true;//單元格內容自動換行
 30                     style2.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
 31                     style2.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
 32                     style2.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
 33                     style2.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
 34 
 35                     //樣式3
 36                     Style style3 = workbook.Styles[workbook.Styles.Add()];
 37                     style3.HorizontalAlignment = TextAlignmentType.Center;
 38 
 39                     style3.Font.Name = "宋體";
 40                     style3.Font.Size = 12;
 41                     style3.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
 42                     style3.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
 43                     style3.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
 44                     style3.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
 45 
 46                     #endregion
 47                     //中文列名
 48                     DataTable tblDatas = new DataTable();
 49                     tblDatas.Columns.Add("Name", Type.GetType("System.String"));  
 50                     tblDatas.Rows.Add(new object[] { "購買日期" });
 51                     tblDatas.Rows.Add(new object[] { "質保時間" });
 52                     tblDatas.Rows.Add(new object[] { "報廢日期" });
 53                     tblDatas.Rows.Add(new object[] { "廠家" });
 54                     tblDatas.Rows.Add(new object[] { "廠家聯系人" });
 55                     tblDatas.Rows.Add(new object[] { "廠家聯系電話" });
 56                     tblDatas.Rows.Add(new object[] { "備注" });
 57                     //保存的路徑
 58                     string path = System.IO.Path.Combine(MYpath, "資產報表" + DateTime.Now.ToString("yyyy-MM-dd").Trim() + ".xls");
 59 //我的數據 就是Sheet名字
 60                   DataTable AssetModelName ="你的Sheet名字";
 61 
 62                     for (int i = 0; i < AssetModelName.Rows.Count; i++)
 63                     {
 64                         workbook.Worksheets.Add("" + (i + 1).ToString() + "-" + AssetModelName.Rows[i]["AssetModelName"].ToString().Trim());
 65                     }
 66                     for (int j = 0; j < AssetModelName.Rows.Count; j++)
 67                     {
 68                         DataTable dt = //使用DataTable對象  去查詢你表格的數據
 69                         Worksheet sheet0 = workbook.Worksheets[j];
 70                         Cells cells = sheet0.Cells;//單元格
 71                         if (dt != null)
 72                         {
 73                             int Colnum = dt.Columns.Count;//表格列數
 74                             int Rownum = dt.Rows.Count;//表格行數  
 75                             cells.Merge(0, 0, 1, Colnum);//合並單元格//生成行1 標題行 
 76                             cells[0, 0].PutValue(AssetModelName.Rows[j]["AssetModelName"].ToString().Trim());//填寫內容
 77                             cells[0, 0].SetStyle(styleTitle);
 78                             cells.SetRowHeight(0, 38);
 79 
 80  //生成行2 列名行   
 81                             for (int i = 0; i < Colnum; i++)
 82                             {
 83                                 cells[1, i].PutValue(tblDatas.Rows[i]["Name"]);
 84                                 cells[1, i].SetStyle(style2);
 85                             }
 86                             cells.SetRowHeight(1, 30);//設置第一行行高
 87 
 88                             //設置列寬
 89                             cells.SetColumnWidth(0, 22);  
 90                             cells.SetColumnWidth(14, 22); 
 91                             //生成數據行
 92                             for (int i = 0; i < Rownum; i++)
 93                             {
 94                                 for (int k = 0; k < Colnum; k++)
 95                                 {
 96                                     cells[2 + i, k].PutValue(dt.Rows[i][k].ToString());
 97                                     cells[2 + i, k].SetStyle(style3);
 98                                 }
 99                                 cells.SetRowHeight(2 + i, 17);
100                             }
101                         }
102                     }
103                     workbook.Save(path);
104                     Process.Start(path);
105                 }
106                 catch (Exception ex)
107                 {
108                     MessageBox.Show(ex.ToString());
109                 }
110             } 
111         }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM