NPOI将数据导出到Excel中

将数据导出到Excel中,相信这样的需求大家都见的不少吧,今天为大家分享下我是如何将数据导出到Excel的

我用到了NPOI.dll插件,该插件可以从网上搜取

 

View Code
 1  private void btnToExcel_Click(object sender, RoutedEventArgs e)
 2         {
 3             //数据源
 4             List<Phone>listPhone=(List<Phone>)dgTest.ItemsSource;
 5             //获取用户选择保存的路径文件名
 6             string saveFileName=OpenFileDialog();
 7             if (!string.IsNullOrEmpty(saveFileName))
 8             {
 9                 //创建一个操作的对象
10                 HSSFWorkbook workBook = new HSSFWorkbook();
11                 //创建一个工作区
12                 ISheet sheet = workBook.CreateSheet("通信");
13                 //创建一行 并设置该行的值 作为标题
14                 IRow rowHead = sheet.CreateRow(0);
15                 rowHead.CreateCell(0,CellType.STRING).SetCellValue("地区");
16                 rowHead.CreateCell(1, CellType.STRING).SetCellValue("类型");
17                 rowHead.CreateCell(2, CellType.STRING).SetCellValue("区号");
18                 rowHead.CreateCell(3, CellType.STRING).SetCellValue("日期");
19                 int i = 0;
20                 //循环读取数据存入sheet工作表中
21                 foreach (var item in listPhone)
22                 {
23                     IRow row = sheet.CreateRow(++i);
24                     row.CreateCell(0,CellType.STRING).SetCellValue(item.AreaName);
25                     row.CreateCell(1, CellType.STRING).SetCellValue(item.NumbType);
26                     row.CreateCell(2, CellType.STRING).SetCellValue(item.AreaNumb);
27                     ICellStyle styledate = workBook.CreateCellStyle();
28                     IDataFormat format = workBook.CreateDataFormat();
29                     //格式具体有哪些请看单元格右键中的格式,有说明
30                     styledate.DataFormat = format.GetFormat("yyyy\"年\"m\"月\"d\"日\"");
31                    ICell cellDate=row.CreateCell(3, CellType.NUMERIC);
32                     cellDate.SetCellValue(DateTime.Now.ToShortDateString());
33                     cellDate.CellStyle = styledate;
34 
35                 }
36                 using (Stream stream = File.OpenWrite(saveFileName))
37                 {
38                     workBook.Write(stream);
39                     MessageBox.Show("保存成功");
40                 }
41             }
42         }
43         private string OpenFileDialog()
44         {
45             SaveFileDialog sfd = new SaveFileDialog();
46             sfd.Filter = "Excel(*.xls, *.xlsx)|*.xls;*.xlsx";
47             if (sfd.ShowDialog() == true)
48             {
49                 return sfd.FileName;
50             }
51             else
52             {
53                 return null;
54             }
55         }


怎么样,比较简单而且比较容易控制吧

posted @ 2013-01-19 17:18  程序有Bug  阅读(354)  评论(0编辑  收藏  举报