//添加引用 NPOI.dll

//添加 using NPOI.HSSF.UserModel;

/// <summary>
/// 导出数据到Excel
/// </summary>
/// <param name="returnMsg"></param>
/// <returns></returns>
public bool ExportOrderToExcel(ref string returnMsg)
{
  try
    {
      DataSet dt = "SQL语句返回dataset数据集";
      int rowIndexS = 0; //表格总行
      if(dt!=null && dt.Tables.Count > 0 && dt.Tables[0].Rows.Count > 0)
        {
          HSSFWorkbook workbook = new HSSFWorkbook();
          HSSFSheet sheet1 = (HSSFSheet)workbook.CreateSheet("工作簿名称");
          HSSFRow headerRow1 = (HSSFRow)sheet1.CreateRow(0);
          HeadControl(headerRow1); //行名称
          foreach (DataRow dr in dt.Tables[0].Rows)
          {
            rowIndexS++;
            HSSFRow dataRow = (HSSFRow)sheet1.CreateRow(rowIndexS);
            OrderFill(dataRow, dr); //填充数据
          }
          //保存
          string path = "/FileRoot/temp/";//文件保存路径
          string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls"; //文件名已时间命名
          path += fileName;
          System.IO.FileStream file = new System.IO.FileStream(HttpContext.Current.Server.MapPath(path), System.IO.FileMode.Create);
          workbook.Write(file);
          //关闭文件,释放对象
          file.Close();
          workbook = null;
          returnMsg =path;//返回文件路径
          return true;
        }
        else
        {
          returnMsg = "没有查到要导出的数据!";
          return false;
        }
      }
    catch (Exception)
    {
      returnMsg = "导出数据失败!";
      return false;
    }
  }

/// <summary>
/// 填充报表数据
/// </summary>
/// <param name="dataRow"></param>
/// <param name="dr"></param>
public void OrderFill(HSSFRow dataRow, DataRow dr)
{
  dataRow.CreateCell(0).SetCellValue(dr["字段名"].ToString()); 
  dataRow.CreateCell(1).SetCellValue(dr["字段名"].ToString()); 
  dataRow.CreateCell(2).SetCellValue(dr["字段名"].ToString()); 
  dataRow.CreateCell(3).SetCellValue(dr["字段名"].ToString()); 
  dataRow.CreateCell(4).SetCellValue(dr["字段名"].ToString()); 
  dataRow.CreateCell(5).SetCellValue(dr["字段名"].ToString()); 
}
/// <summary>
/// 导出已支付订单的表头
/// </summary>
/// <param name="headerRow"></param>
public void HeadControl(HSSFRow headerRow)
{
  headerRow.CreateCell(0).SetCellValue("列名");
  headerRow.CreateCell(1).SetCellValue("列名");
  headerRow.CreateCell(2).SetCellValue("列名");
  headerRow.CreateCell(3).SetCellValue("列名");
  headerRow.CreateCell(4).SetCellValue("列名");
  headerRow.CreateCell(5).SetCellValue("列名");
}

附件:NOPI.DLL下载链接 http://files.cnblogs.com/a-mumu/NPOI.zip

C# 将dataset数据导出到excel中的更多相关文章

  1. asp.net DataSet数据导出到Excel中

    方法: [STAThread]///这是必须的    public override void VerifyRenderingInServerForm(System.Web.UI.Control co ...

  2. 将Datagridview中的数据导出至Excel中

        首先添加一个模块ImportToExcel,并添加引用         然后导入命名空间: Imports Microsoft.Office.Interop Imports System.Da ...

  3. 如何将存储在MongoDB数据库中的数据导出到Excel中?

    将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...

  4. 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!

    一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...

  5. 将datagrid中数据导出到excel中 -------<<工作日志2014-6-6>>

    前台datagrid数据绑定 #region 导出到excel中    /// <summary>    /// 2014-6-6    /// </summary>    / ...

  6. Magic xpa 3.x很容易将数据导出到Excel中

    Magic xpa 3.x很方便的将表中数据导出到Excel文件中,还可以自动将表中数据生成各种图表. 通过使用自带的打印数据内部事即可实现. 1.首先将打印数据任务属性设置为“是”. 2.可使用主程 ...

  7. 数据导出到Excel中

    自己修改后的一个数据导出到Excel的方法,粘出来与大家共享. 只需要将             System.Web.HttpContext.Current.Response.Charset =   ...

  8. dataset数据导出到Excel

    1.将数据写入HTTP输出流/这样子导出以后的数据全在一行中 public void CreateExcel(DataSet ds, string FileName) { HttpResponse r ...

  9. DataSet数据导出为Excel文档(每个DataTable为一个Sheet)

    Web项目中,很多时候须要实现将查询的数据集导出为Excel文档的功能,很多时候不希望在工程中添加对Office组件相关的DLL的引用,甚至有时候受到Office不同版本的影响,导致在不同的服务器上部 ...

随机推荐

  1. [LeetCode]647. 回文子串(DP)

    ###题目 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串. 示例 1: 输入: "abc&q ...

  2. Linux实战(19):Shell交互式read 用法

    read 用法有好几种,我在实战过程中用到了 -p,记一笔以防不用忘记了. 实例 #!/bin/bash echo "检测IP是否被占用" while read -p " ...

  3. redis并发问题2

    转自https://mp.weixin.qq.com/s?__biz=MzI1NDQ3MjQxNA==&mid=2247485464&idx=1&sn=8d690fc6f878 ...

  4. nioServerChannel的的状态

    转载自https://blog.csdn.net/zxhoo/article/details/17964353 Channel继承层次图分析上面提到的三个状态的时候,会去看Channel继承层次里某些 ...

  5. Final终态类和Finally

  6. 曹工说Tomcat:200个http-nio-8080-exec线程全都被第三方服务拖住了,这可如何是好(上:线程模型解析)

    前言 这两年,tomcat慢慢在新项目里不怎么接触了,因为都被spring boot之类的框架封装进了内部,成了内置server,不用像过去那样打个war包,再放到tomcat里部署了. 但是,内部的 ...

  7. Spring Environment对象获取属性

    String[] activeProfiles = env.getActiveProfiles();//获取当前是启用哪一个个配置文件 System.out.println(Arrays.toStri ...

  8. 对offsetof、 container_of宏和结构体的理解

    offsetof 宏 #include<stdio.h> #define offsetoff(type, member)      ((int)&((type*)0)->me ...

  9. 注册表“CLSID”下面的“InprocServer32”子键是什么?

    这个键值有什么用?每个CLSID下基本都有,即使没有其它项也会有此项.谁能详细说下,"InprocServer32"子键起什么作用?谢了. 刚好遇到这问题了,这是我找到的:Inpr ...

  10. 012 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 06 浮点型“字面值”

    012 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 06 浮点型"字面值" 浮点型字面值 首先要知道一点:在整型部分中,默认情况下,即整型数 ...