导出Excel文件(项目中会遇到很多将一些数据导出Excel或者et)

最近在项目中,遇到一些需求,就是将数据导出来,以Excel文件为主:就自己简单的做一些demo:供初学者来学习:

  1             // 定义一个保存文件的路径位置
  2             SaveFileDialog dlgPath = new SaveFileDialog();
  3             string sPath = string.Empty;
  4             // 需要保存的格式
  5             dlgPath.Filter = "Excel文件(*.xls)|*.xls";
  6 
  7             // 对Excel相应的操作定义变量
  8             ApplicationClass app = new ApplicationClass();
  9             Microsoft.Office.Interop.Excel._Workbook _workBook = null;
 10 
 11             try
 12             {
 13                 // 弹出要保存文件的位置(可选择也可以默认路径)
 14                 if (dlgPath.ShowDialog() == System.Windows.Forms.DialogResult.OK)
 15                 {
 16                     sPath = dlgPath.FileName;
 17                 }
 18                 else
 19                 {
 20                     return;
 21                 }
 22 
 23 
 24                 Workbooks workBooks = app.Workbooks;
 25                 _workBook = workBooks.Add(true);
 26 
 27                 Sheets sheets = _workBook.Sheets;
 28 
 29                 Worksheet sheet = (Worksheet)sheets[1];
 30 
 31                 //判断表头是为空
 32                 if (!string.IsNullOrEmpty(dt.TableName))
 33                 {
 34                     sheet.Name = dt.TableName;
 35                 }
 36 
 37                 char sExcelColn = 'A';
 38                 char sExcelColnEx = 'A';
 39                 for (int i = 0; i < dt.Columns.Count; i++)
 40                 {
 41                     // 设置Excel某列单元格的文本格式,从第二行开始
 42                     for (int index = 2; index < dt.Rows.Count+2; index++)
 43                     {
 44                         if (i > 25)
 45                         {
 46                             Range objRange = sheet.get_Range("A" + sExcelColnEx + index.ToString(), Type.Missing);
 47                             if (null!=objRange)
 48                             {
 49                                 objRange.NumberFormatLocal = "@";
 50                             }
 51                             else {
 52                                 break;
 53                             }
 54                         }
 55                         else
 56                         {
 57                             Range objRange = sheet.get_Range("A" + sExcelColn + index.ToString(), Type.Missing);
 58                             if (null != objRange)
 59                             {
 60                                 objRange.NumberFormatLocal = "@";
 61                             }
 62                         }
 63                     }
 64                     if (i<=25)
 65                     {
 66                         sExcelColn++;
 67                     }else
 68                     {
 69                         sExcelColnEx++;
 70                     }
 71                 }
 72                 int x = 1, y = 1;
 73                 foreach (DataColumn cloumn in dt.Columns)
 74                 {
 75                     // 如果Caption不为空表头输出使用Caption,否则使用ColumnName
 76                     if (string.IsNullOrEmpty(cloumn.Caption.ToString()))
 77                     {
 78                         sheet.Cells[x, y++] = cloumn.ColumnName.ToString();
 79                     }
 80                     else
 81                     {
 82 
 83                         sheet.Cells[x, y++] = cloumn.Caption.ToString();
 84                     }
 85                 }
 86                 x++;
 87                 y = 1;
 88 
 89                 foreach (DataRow row in dt.Rows)
 90                 {
 91                     foreach (DataColumn column in dt.Columns)
 92                     {
 93                         sheet.Cells[x,y++] = row[column.ColumnName].ToString();
 94                     }
 95                     x++;
 96                     y = 1;
 97                 }
 98                 _workBook.SaveAs(sPath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
 99                     XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
100 
101             }
102             catch (Exception ex)
103             {
104 
105                 throw ex;
106             }
107             finally
108             {
109                 if (_workBook!=null)
110                 {
111                     _workBook.Close(Type.Missing, Type.Missing, Type.Missing);
112                 }
113                 if (app!=null)
114                 {
115                     app.Quit();
116                 }
117             }

上面的代码是将数据转换成Excel的过程:

我们在做一组假数据,看看效果:

 1             // 表格数据
 2             System.Data.DataTable dt = new System.Data.DataTable();
 3             dt.Columns.Add("name");
 4             dt.Columns.Add("age");
 5             dt.Columns.Add("sex");
 6             dt.Columns.Add("weight");
 7             dt.Columns.Add("height");
 8             dt.Columns.Add("adress");
 9             dt.Columns.Add("phone");
10             dt.Columns.Add("workAdress");
11 
12             DataRow dr = dt.NewRow();
13             dr["name"] = "万三窦";
14             dr["age"] = "28";
15             dr["sex"] = "男";
16             dr["weight"] = "68kg";
17             dr["height"] = "167cm";
18             dr["adress"] = "丰台区大井";
19             dr["phone"] = "13866669999";
20             dr["workAdress"] = "金堂国际大厦配楼301";
21             dt.Rows.Add(dr);

我上面是用WindowForm做的demo:只需在界面加个按钮调用下,就可以,我们来看下效果
在这里插入图片描述

vb.net教程c#教程python基础教程

若有不正确的地方,请大家多多指教!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值