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 }