• 数据库内容导出到Excel


    此案例需要引入NPOI.dll文件和Ionic.Zip.dll文件

     

      1 using System;
      2 
      3 using System.Collections.Generic;
      4 
      5 using System.Linq;
      6 
      7 using System.Text;
      8 
      9 using System.Data.SqlClient;
     10 
     11 using NPOI.SS.UserModel;
     12 
     13 using NPOI.HSSF.UserModel;
     14 
     15 using System.IO;
     16 
     17  
     18 
     19 namespace 导出数据到Excel
     20 
     21 {
     22 
     23     class Program
     24 
     25     {
     26 
     27         static void Main(string[] args)
     28 
     29         {
     30 
     31    
     32 
     33             bool b = false;
     34 
     35             using (SqlDataReader reader = SqlHelper.ExecuteReader("select * from T_Customers"))
     36 
     37             {
     38 
     39  
     40 
     41                 if (reader.HasRows)
     42 
     43                 {
     44 
     45                     b = true;
     46 
     47 //创建一个工作簿
     48 
     49                     using (Workbook book = new HSSFWorkbook())
     50 
     51                     {
     52 
     53                         using (Sheet sheet = book.CreateSheet("CustomerInfo.xls"))
     54 
     55                         {
     56 
     57     //创建一行,该行信息存在字段名称
     58 
     59                             Row rowHeader = sheet.CreateRow(0);
     60 
     61 //创建单元格,创建的单元格的个数与数据库中字段的个数相同,数据库中的字段的个数可以
     62 
     63   使用reader.FieldCount得到
     64 
     65                             for (int c = 0; c < reader.FieldCount; c++)
     66 
     67                             {
     68 
     69                                 rowHeader.CreateCell(c).SetCellValue(reader.GetName(c));
     70 
     71                             }
     72 
     73  
     74 
     75                             int indexof = 1;
     76 
     77                             while (reader.Read())
     78 
     79                             {
     80 
     81                                 Row row = sheet.CreateRow(indexof);
     82 
     83                                 for (int i = 0; i < reader.FieldCount; i++)
     84 
     85                                 {
     86 
     87                                     Cell cell = row.CreateCell(i);
     88 
     89                                     switch (reader.GetDataTypeName(i))
     90 
     91                                     {
     92 
     93                                         case "int":
     94 
     95                                             if (reader.IsDBNull(i))
     96 
     97                                             {
     98 
     99                                                 cell.SetCellType(CellType.BLANK);
    100 
    101                                             }
    102 
    103                                             else
    104 
    105                                             {
    106 
    107                                                 cell.SetCellValue(reader.GetInt32(i));
    108 
    109                                             }
    110 
    111                                             break;
    112 
    113                                         case "varchar":
    114 
    115                                         case "char":
    116 
    117                                         case "nchar":
    118 
    119                                         case "nvarchar":
    120 
    121                                             if (reader.IsDBNull(i))
    122 
    123                                             {
    124 
    125                                                 cell.SetCellType(CellType.BLANK);
    126 
    127                                             }
    128 
    129                                             else
    130 
    131                                             {
    132 
    133                                                 cell.SetCellValue(reader.GetString(i));
    134 
    135                                             }
    136 
    137                                             break;
    138 
    139                                         case "datetime":
    140 
    141                                             if (reader.IsDBNull(i))
    142 
    143                                             {
    144 
    145                                                 cell.SetCellType(CellType.BLANK);
    146 
    147                                             }
    148 
    149                                             else
    150 
    151                                             {
    152 
    153                                                 cell.SetCellValue(reader.GetDateTime(i).ToString());
    154 
    155                                             }
    156 
    157                                             break;
    158 
    159                                         default: break;
    160 
    161  
    162 
    163                                     }
    164 
    165  
    166 
    167                                 }
    168 
    169                                 indexof++;
    170 
    171                             }
    172 
    173                             using (FileStream fsWrite = File.OpenWrite("CustomerInfo.xls"))
    174 
    175                             {
    176 
    177                                 book.Write(fsWrite);
    178 
    179                                 Console.WriteLine("数据导入成功");
    180 
    181                             }
    182 
    183                         }
    184 
    185                         if (!b)
    186 
    187                         {
    188 
    189                             Console.WriteLine("没数据");
    190 
    191                         }
    192 
    193                     }
    194 
    195                 }
    196 
    197             }
    198 
    199         }
    200 
    201     }
    202 
    203 }

     

     

     

  • 相关阅读:
    申论复习路线
    项目管理小拾
    物理隔离卡,双网通用安装
    生成css sprites
    图片压缩
    css预编译 sass
    小杂记
    遮罩层和弹出层(居中)
    布局之并列登高自适应高度解决方案
    slide逻辑
  • 原文地址:https://www.cnblogs.com/hanwenhuazuibang/p/2999910.html
Copyright © 2020-2023  润新知