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 }