zoukankan      html  css  js  c++  java
  • C#中导出数据到Excel表格中 逗号

          之前PM交给我一个自动化测试的Case,让我抓取页面上的数据到Excel表格中,刚好又接了一个之前人家做的系统, 刚好看到可以用NPOI导数据,就动手试试,成功导出。

    由于鄙人比较菜,也比较懒, 怕自己忘记了,今天就总结一下,以防下次用可以参考。

    1.要使用NPOI,首先需要在Project中Install NPOI的 Package。

          右键点击Project------>Manage NuGet Packages---->Search NPOI----->点击搜索到的NPOI然后点击等待安装完毕。

    2. 安装完成后,你可以在Project的References下看到下面的4个Assembly:

        NPOI;  
        NPOI.OOXML;
        NPOI.OpenXml4Net;
        NPOI.OpenXmlFormats;

    3. 现在就可以在代码中使用啦。。。

        首先引用以下几个命名空间:

             Using NPOI.XSSF.UserModel; 
             Using NPOI.SS.UserModel;  
             Using NPOI.HSSF.UserModel;

       注:POI读取Excel有两中格式,一种是HSSF,另一种是XSSF。

              HSSF适用2007以前的版本,XSSF适用2007版本及其以上的。

        下面是我在本地测试代码的主要部分: 

     1  public class XlsxHelper
     2     {
     3 
     4         public static string CreateXLSFile(DataTable dt)
     5         {
     6             HSSFWorkbook hssfworkbook = new HSSFWorkbook();
     7             ISheet sheet1 = hssfworkbook.CreateSheet("table1");
     8             sheet1.CreateFreezePane(1, 1, 1, 1);
     9 
    10             for (int i=0;i<10;i++)
    11             {
    12                 sheet1.SetColumnWidth(i, 20 * 256);
    13             }
    14 
    15             int rowNum = 0;
    16             IRow headRow = sheet1.CreateRow(rowNum);
    17             headRow.HeightInPoints = 60;
    18             ICellStyle headStyle = hssfworkbook.CreateCellStyle();
    19             headStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; //居中
    20             headStyle.VerticalAlignment = VerticalAlignment.Center;//垂直居中
    21             headStyle.WrapText = true; //自动换行
    22             /****************写入列标题*********************/
    23             headRow.CreateCell(0).SetCellValue("ID");
    24             headRow.CreateCell(1).SetCellValue("Name");
    25             headRow.CreateCell(2).SetCellValue("Age");
    26             headRow.CreateCell(3).SetCellValue("Salary");
    27 
    28             sheet1.GetRow(0).GetCell(0).CellStyle = headStyle;
    29             sheet1.GetRow(0).GetCell(1).CellStyle = headStyle;
    30             sheet1.GetRow(0).GetCell(2).CellStyle = headStyle;
    31             sheet1.GetRow(0).GetCell(3).CellStyle = headStyle;
    32 
    33             /*********************写入字段值*******************/
    34             ICellStyle style = hssfworkbook.CreateCellStyle();
    35             style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index;
    36             style.FillPattern = NPOI.SS.UserModel.FillPattern.Squares;
    37             style.FillBackgroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index;
    38             for(int kr=0;kr<dt.Rows.Count;kr++)
    39             {
    40                 rowNum++;
    41                 IRow row = sheet1.CreateRow(rowNum);
    42                 for(int kc=0;kc<dt.Columns.Count;kc++)
    43                 {
    44                     row.CreateCell(kc).SetCellValue(dt.Rows[kr][kc].ToString());
    45                 }
    46             }
    47 
    48             string fullName = GetFilePath();
    49 
    50             using (FileStream file1 = new System.IO.FileStream(fullName, FileMode.Create, FileAccess.ReadWrite))
    51             {
    52                 hssfworkbook.Write(file1);
    53             }
    54             return fullName;
    55         }
    56 
    57         public static string GetFilePath()
    58         {
    59             string filePath;
    60             string ExcelPathFolder =ConfigurationManager.AppSettings["folder"];
    61             string filename = "Excel_" + DateTime.Now.Ticks + ".xls";
    62 
    63             if (!Directory.Exists(ExcelPathFolder))  //如果Folder不存在,则创建
    64                 Directory.CreateDirectory(ExcelPathFolder);
    65 
    66             filePath = System.IO.Path.Combine(ExcelPathFolder, filename);
    67 
    68             return filePath;
    69         }
    70     }
    View Code

    注: 由于我自己有遇到下面的问题,所有顺便提一句,引用了命名空间Using System.Configuration, 但是在代码中使用ConfigurationManager.AppSettings[""]的时候出现当前上下文不存在ConfigurationManager的错。记得要在Project下的References中添加System.Configuration.

       至于数据来源,可以自己构建或从数据库中获取。

    如果有问题,希望看到的大神指点。不慎感激。要持续记笔记啦,不能懒啦。  妹子会成为最胖哒。。

    注: 看到相关好博客 附地址:http://www.cnblogs.com/luxiaoxun/p/3374992.html

  • 相关阅读:
    如何使用android模拟器截图
    android SD卡文件的读写
    res/raw下的资源文件读写
    window 运行指令(1)
    javax.swing.JOptionPane.showMessageDialog() 方法
    Eclipse快捷键
    EditPlus怎样自动换行
    java的HashCode方法
    eclipse汉化全程
    (转载)jdbc事务处理
  • 原文地址:https://www.cnblogs.com/erhanhan/p/7552572.html
Copyright © 2011-2022 走看看