c#使用NPOI批量导出数据到excel表格里

本文介绍了如何在C#中使用NPOI库批量导出数据到Excel表格。首先从NPOI官网下载并添加引用,接着在Visual Studio中设计界面,包括查询和导出功能。然后展示了查询代码、表格设置和数据导出的实现,最后提供了问题解决和源码获取方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

我之前是做的Java开发的相关工作,c#开发还是第一次。

公司有这个需求,只好研究一下了。

我接手的是别人开发过两个报表的小玩意,万事开头难,刚开始为了搞清楚这些代码的意思走了不少弯路,下面说说我的理解,有不对的地方希望指出来,谢谢。

开始

我们先把准备工作做好,去官网下载NPOI,其他的我随后解释

NPOI官网下载地址:https://www.nuget.org/packages/NPOI/

在这里可以看到最新的版本是NPOI2.4.1版本

下载压缩包——在这找到Download package ,下载压缩包

添加引用

下载完之后,解压,打开解压文件夹下的release文件夹,你会看到有net20和net40文件夹,这里我们打开net40,可以看到一些dll文件,我们需要的就是引用NPOI.dll。

在这里我用的是Visual Studio community 2019版本,这个版本是学生、开发源代码参与者和个人免费使用的。

我们打开VS界面,添加引用,选择刚刚那个dll,并确定。添加完成后,可以在引用里面看到。至于其他的引用你们可以照着这个来,数据库用的是mysql数据库,其他的引用小编也不是都知道,哈。

useing一些必要的东东       然后useing 这些玩意

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 MySql.Data.MySqlClient;
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;

然后就可以开始开发了,项目结构自己定,导出数据的界面可自由设计合适的

设计可视化界面

进到设计界面视图,选视图-——选择工具箱会出现这个页面,左侧是组件,鼠标拖动左侧组件到tabPage11就可自由设计你想要的页面了,在这我列举了几个例子,都是表头上用来筛选数据的,

界面的一些简单设置

除此之外,你需要把表格和表头加上去,标了步骤,首先找属性里的杂项,这一列最右边(集合)框里有三个点 ...

点击会出现一个编辑列的框,在这可设置表头文字,表头宽度,表头文字高度,数据来源就是数据库里的字段,尽量和查询的字段保持一致

可自由添加列,根据需要添加,这个就是NPOI查询到的数据的展示界面

表格上面设置有  查询  和   导出   按钮,用来查询数据和导出数据到ecxel表格

ok,设计完界面,下面可以进行实际开发工作了

查询代码

这段代码就是对应的查询代码,模糊查询就是表头上用来筛选数据的东东

就是这些,不多说上图

   ///应收/应付
        private void button1_Click(object sender, EventArgs e)
        {
//charset=gb2312;是编码格式,数据库用户名一般都是root
            string connStr = "server=服务器IP;user id=root;password=数据库密码;database=数据库名;charset=gb2312;";
            string query = "select g.tour_groupno,p.tour_companyName,g.tour_lineName,h.tour_name as tour_jdId,g.tour_countMan,g.tour_countChild," +
            "(CASE j.tour_type WHEN 0 THEN '云南线' WHEN 1 THEN '泰国线' WHEN 2 THEN '贵州' WHEN 3 THEN '四川' WHEN 4 THEN '海南' WHEN 5 THEN '西北'WHEN 6 THEN '桂林' ELSE 'null' END) as tour_type," +
                             "p.tour_cwName,t.tour_date,q.tour_money,p.tour_money as tour_moneytot,h.tour_ysmoney,h.tour_alreadymoney,p.tour_mark,p.tour_cwStatus from " +
                             "(select tour_id,tour_date from tour_payingsearch " +
                             "where tour_date between '" + date1.Value.ToString("yyyy-MM-dd") + "' and '" + date2.Value.ToString("yyyy-MM-dd") + "' ";
            query += "and tour_cid = 4 and tour_cate=" + cb1.SelectedValue + " ) as t 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值