C#用NPOI控件怎么把sql中查询出来的数据数据导出到excel

一、NPOI控件

      NPOI,顾名思义,就是POI的.NET版本。那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。

      笔者以上所用的npoi版本为1.2.5版本(部分自定义修改了),对于具体npoi相关资料可以从网上查找获得。

        对于从Sqlserver中的数据导入到Excel中,虽然Sqlserver已经给了较为简单的方式,通过交互式的对话框形式来实现;但是,有时这种方式对于一个项目而言,并不便利,而且我们都不希望功能的实现离开了软件程序。因此,在此给大家介绍一种C#调用NPOI进行Excel导出的代码实现方式。

二、工具/原料

  • VS2010
  • Sqlserver
  •  

三、方法/步骤

1、构建查询界面UI

使用VS2010建构查询界面,在此笔者所测试的是Winform程序,一个往来账查询的功能,具体界面如下图所示:

   C#怎么把sql中的数据导入到excel 中用代码实现  

2、利用C#代码获取SQL数据

        利用C#代码获取SQL数据,并将查询出来的数据保存到数据表DataTable中;部分查询代码如下:

 private void btnRefresh_Click(object sender, EventArgs e)
 {
            //search string
            condition = "";
            condition = condition + " [px_rq]>='" + dateTimePicker1.Value.ToShortDateString() + "' AND [px_rq]<='" + dateTimePicker2.Value.ToShortDateString() + "' ";
            if (txtKjkm.Text != "")
                condition = condition + "AND [kmdm] like '" + SearchKmdm + "%' ";
            if (txtXmmc.Text != "")
                condition = condition + "AND [xmdm] like '" + txtXmmc.Text.Trim() + "%' ";
//……
           VouchOp dzd = new VouchOp();
          dt = dzd.oneYearVouch(condition, conditionQc);
 }

 

C#怎么把sql中的数据导入到excel 中用代码实现

3、设定dataGridView的数据源

      将所查询出来的DataTable数据表设定为dataGridView的数据源:

       dataGridView1.DataSource = dt;

C#怎么把sql中的数据导入到excel 中用代码实现

 

4、调用NPOI将数据导入到Excel中

      调用NPOI控件,并将数据导入到Excel中:

       private void btnExcel_Click(object sender, EventArgs e)

        {

            NPOIExcel.GenerateXlsFromXlsTemplate(dataGridView1);

        }

C#怎么把sql中的数据导入到excel 中用代码实现

C#怎么把sql中的数据导入到excel 中用代码实现

 

5、指定文件存储路径

  点击生成EXCEL,跳出存储对话框(如下图),接下来我们做的就是先找到存放这个文件的路径,代码如下:

static void WriteToFile()
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
            saveFileDialog.FilterIndex = 0;
            saveFileDialog.RestoreDirectory = true;
            saveFileDialog.CreatePrompt = true;
            saveFileDialog.Title = "Excel文件另存为…";
            //  saveFileDialog.ShowDialog();
            if (saveFileDialog.ShowDialog() != DialogResult.OK)
                return;
            string myExcel = saveFileDialog.FileName;         
            FileStream file = new FileStream(myExcel, FileMode.Create);
            hssfworkbook.Write(file);
            file.Close();
        }

 这段代码,意思是看是否存在文件夹,如果存在,则查看是否存在文件,如果不存在文件夹或者文件,都将进行创建。

C#怎么把sql中的数据导入到excel 中用代码实现

C#怎么把sql中的数据导入到excel 中用代码实现

 

打开所存储的EXCEL文件,即是从SQL数据中导入的内容,如下图所示:

C#怎么把sql中的数据导入到excel 中用代码实现

 

https://jingyan.baidu.com/article/574c521979c4be6c8d9dc197.html

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值