之前已经介绍过几种导出Excel方式,这里再提供一种导出Excel方式,这种方式以二进制写入Excel,并且可以对Excel进行样式设置。
比如合并单元格,字体设置等等。
这里要引用前辈已经封装好的操作Excel的类库。
其中xml文档为注释文档。
调用很简单,方法如下:
View Code
1 //导出文件名
2 fileName = string.Format("{0}-{1}{2}.xls", "用户明细", DateTime.Now.ToString("yyyyMMdd"), GetRndNum(3));
3 //创建操作Excel文档对象
4 XlsDocument xlsDoc = new XlsDocument();
5 //为sheet重命名
6 Worksheet sheet = xlsDoc.Workbook.Worksheets.AddNamed("用户明细");
7 Cell cell;
8
9 //导出文件的表头
10 string[] head = new string[] { "序号", "姓名", "性别", "年龄" };
11 //循环为表头赋值
12 for (int i = 0; i < head.Length; i++)
13 {
14 cell = sheet.Cells.AddValueCell(1, 1 + i, head[i].ToString());
15 //设置表头字体为粗体
16 cell.Font.Bold = true;
17 //内容为横向输出且居中
18 cell.HorizontalAlignment = HorizontalAlignments.Centered;
19 }
20 //输出内容
21 SqlDataAdapter adapter = new SqlDataAdapter("Select * From UserInfo", _conn);
22 DataTable dt = new DataTable();
23 adapter.Fill(dt);
24 for (int j = 0; j < dt.Rows.Count; j++)
25 {
26 cell = sheet.Cells.AddValueCell(j + 2, 1, j.ToString());
27 cell = sheet.Cells.AddValueCell(j + 2, 2, dt.Rows[j]["name"].ToString());
28 cell = sheet.Cells.AddValueCell(j + 2, 3, dt.Rows[j]["sex"].ToString() == "0" ? "女" : "男");
29 cell = sheet.Cells.AddValueCell(j + 2, 4, dt.Rows[j]["age"].ToString());
30 }
31 //Excel文件名
32 xlsDoc.FileName = fileName;
33 //保存到服务器临时文件夹
34 xlsDoc.Save(HttpContext.Current.Server.MapPath("Temp_Down"),true);
35
36 dt.Dispose();
37 sheet = null;
38 xlsDoc = null;
-------------------------------------------欢迎交流 END---------------------------------------------------------------