C#用NPOI实现数据保存到excel

 

很多场景,C#程序需要将处理后的数据导出到excel格式生成表格进行保存,相信对于很多初入门的小伙伴来说相信是比较头疼和复杂的过程,下面小博为大家分享一下如何利用NPOI来将数据写入到excel中并保存

1.下载NPOI库文件

首先是下载NPOI要用到的ICSharpCode.SharpZipLib.dll,NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,NPOI.OpenXmlFormats.dll五个库文件,下载链接如下:

https://download.csdn.net/download/ld15102891672/12162354

2.创建C#程序

C#用NPOI实现数据保存到excel_第1张图片

3.在C#程序引入NPOI库

在C#对话框窗体程序中解决方案栏添加引用将NPOI库加载到程序项目中

C#用NPOI实现数据保存到excel_第2张图片

4.在主代码引入读写excel用到的相关命名空间

using NPOI.XSSF.UserModel;

using System.IO;

C#用NPOI实现数据保存到excel_第3张图片

5.最后附上主代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using NPOI.XSSF.UserModel;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        

        public Form1()
        {
            InitializeComponent();
           
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            //建2007文件版本的方法。新建工作簿。
            XSSFWorkbook workbook2007 = new XSSFWorkbook();

            //新建1个Sheet工作表        
            workbook2007.CreateSheet("Sheet1");

            //获取名称为Sheet1的工作表  
            XSSFSheet SheetOne2007 = (XSSFSheet)workbook2007.GetSheet("Sheet1");

            //对工作表先添加行,下标从0开始                                                                 
            for (int i = 0; i < 2; i++)
            {
                SheetOne2007.CreateRow(i);   //创建2行  
            }
            //对每一行创建10个单元格  
            XSSFRow SheetRow2007 = (XSSFRow)SheetOne2007.GetRow(0);  //获取Sheet1工作表的首行  
            XSSFCell[] SheetCell2007 = new XSSFCell[10];
            for (int i = 0; i < 10; i++)
            {
                //依次为每行创建10个单元格
                SheetCell2007[i] = (XSSFCell)SheetRow2007.CreateCell(i);
            }
            //创建之后就可以赋值了  
            SheetCell2007[0].SetCellValue(true); //赋值为bool型           
            SheetCell2007[1].SetCellValue(0.000001); //赋值为浮点型  
            SheetCell2007[2].SetCellValue("Excel2003"); //赋值为字符串  
            SheetCell2007[3].SetCellValue("123456789987654321");//赋值为长字符串  
            for (int i = 4; i < 10; i++)
            {
                //循环赋值为整形
                SheetCell2007[i].SetCellValue(i);
            }

           SheetRow2007 = (XSSFRow)SheetOne2007.GetRow(1);  //获取Sheet1工作表的第2行  
            SheetCell2007 = new XSSFCell[10];
            for (int j = 0; j < 10; j++) {
                SheetCell2007[j] = (XSSFCell)SheetRow2007.CreateCell(j);
                SheetCell2007[j].SetCellValue(j+1);//赋值0-10整数 
            }
           
            //保存excel文件
            SaveFileDialog dlg = new SaveFileDialog();
            dlg.Filter = "xlsx文件(*.xlsx)|*.xlsx";
            dlg.FileName = "result_obser";
            dlg.AddExtension = true;
            dlg.RestoreDirectory = true;
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                FileStream file2007 = new FileStream(dlg.FileName, FileMode.Create);
                workbook2007.Write(file2007);
                file2007.Close();
                workbook2007.Close();
            }

        }
    }
}

6.程序最后生成的excel文件如图所示

C#用NPOI实现数据保存到excel_第4张图片

7.源程序下载链接

https://download.csdn.net/download/ld15102891672/12162478

你可能感兴趣的:(C#)