• 如何数据库表数据导出到excel中


    1.首先须要有一个NPOI

    2.接下来上代码

      1 private void button1_Click(object sender, EventArgs e)
      2 {
      3 //1.通过Ado.net读取数据
      4 string sql = "SELECT * FROM ASRS_F1";
      5 using (SqlDataReader reader = SqlHelper.ExecuteReader(sql, CommandType.Text))
      6 {
      7 //如果读到数据
      8 if (reader.HasRows)
      9 {
     10 IWorkbook wk = new HSSFWorkbook();
     11 ISheet sheet = wk.CreateSheet("ASRS_F1");
     12 
     13 #region 创建第一行,设置列名
     14 //--------------------------------------------------
     15 //创建第一行,第一行表示列名
     16 IRow rowHead = sheet.CreateRow(0);
     17 //循环查询出的每一列
     18 for (int col = 0; col < reader.FieldCount; col++)
     19 {
     20 rowHead.CreateCell(col).SetCellValue(reader.GetName(col));
     21 }
     22 //--------------------------------------------------
     23 #endregion
     24 
     25 int rindex = 1;
     26 //下面是创建数据行
     27 while (reader.Read())
     28 {
     29 //ID, Position, AName, ACode, AState, ABatch, ADateTime, BName, BCode, BState, BBatch, BDateTime, IsMoving, IsType
     30 IRow currentRow = sheet.CreateRow(rindex);
     31 rindex++;
     32 int Id = reader.GetInt32(0);
     33 string Position = reader.GetString(1);
     34 string AName = reader.GetString(2);
     35 string ACode = reader.GetString(3);
     36 string AState = reader.GetString(4);
     37 string ABatch =reader.IsDBNull(5)?null: reader.GetString(5);
     38 DateTime? lockDate = reader.IsDBNull(6) ? null : (DateTime?)reader.GetDateTime(6);
     39 string BName = reader.GetString(7);
     40 string BCode = reader.GetString(8);
     41 string BState = reader.GetString(9);
     42 string BBatch = reader.IsDBNull(10)?null:reader.GetString(10);
     43 DateTime? lockDates = reader.IsDBNull(11) ? null : (DateTime?)reader.GetDateTime(11);
     44 string IsMoving = reader.GetString(12);
     45 string IsType = reader.GetString(13);
     46 
     47 currentRow.CreateCell(0).SetCellValue(Id);
     48 currentRow.CreateCell(1).SetCellValue(Position);
     49 currentRow.CreateCell(2).SetCellValue(AName);
     50 currentRow.CreateCell(3).SetCellValue(ACode);
     51 currentRow.CreateCell(4).SetCellValue(AState);
     52 currentRow.CreateCell(5).SetCellValue(ABatch);
     53 if (lockDate == null)
     54 {
     55 //如果是null值,那么就像excel写入一个单元格,这个单元格的类型就是Blank
     56 currentRow.CreateCell(6).SetCellType(CellType.BLANK);
     57 }
     58 else
     59 {
     60 
     61 //创建一个单元格
     62 ICell cellLockDate = currentRow.CreateCell(6);
     63 
     64 //创建一个单元格样式
     65 ICellStyle cellStyle = wk.CreateCellStyle();
     66 cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("m/d/yy h:mm");
     67 //设置当前单元格应用cellStyle样式
     68 cellLockDate.CellStyle = cellStyle;
     69 
     70 
     71 cellLockDate.SetCellValue((DateTime)lockDate);
     72 }
     73 currentRow.CreateCell(7).SetCellValue(BName);
     74 currentRow.CreateCell(8).SetCellValue(BCode);
     75 currentRow.CreateCell(9).SetCellValue(BState);
     76 currentRow.CreateCell(10).SetCellValue(BBatch);
     77 
     78 if (lockDates == null)
     79 {
     80 //如果是null值,那么就像excel写入一个单元格,这个单元格的类型就是Blank
     81 currentRow.CreateCell(11).SetCellType(CellType.BLANK);
     82 }
     83 else
     84 {
     85 
     86 //创建一个单元格
     87 ICell cellLockDate = currentRow.CreateCell(11);
     88 
     89 //创建一个单元格样式
     90 ICellStyle cellStyle = wk.CreateCellStyle();
     91 cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("m/d/yy h:mm");
     92 //设置当前单元格应用cellStyle样式
     93 cellLockDate.CellStyle = cellStyle;
     94 
     95 
     96 cellLockDate.SetCellValue((DateTime)lockDates);
     97 }
     98 currentRow.CreateCell(12).SetCellValue(IsMoving);
     99 currentRow.CreateCell(13).SetCellValue(IsType);
    100 }
    101 
    102 //写入
    103 using (FileStream fsWrite = File.OpenWrite("半成品库存表.xls"))
    104 {
    105 wk.Write(fsWrite);
    106 }
    107 label1.Text = "写入成功!" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
    108 }
    109 else
    110 {
    111 label1.Text = "没有查询到任何数据";
    112 }
    113 }
    114 
    115 }
  • 相关阅读:
    py-day1-2 python的循环语句
    B/S和C/S结构的区别
    php get_magic_quotes_gpc() addslashes()
    SqlHelper数据库访问类
    随滚动条滚动的居中div
    有关Repeater的事件
    Repeater的ItemCommand事件和ItemCreated事件,高手请跳过~
    温故而知新之数据库的分离和附加…高手请跳过….
    自己做的一个小功能~
    php什么是变量的数据类型
  • 原文地址:https://www.cnblogs.com/hmYao/p/4801364.html
Copyright © 2020-2023  润新知