public static bool ExportToExcel_dataSet(string queryNo, string conditions)

{

bool _bl = false;

try

{

Docmd.cnnOpen();

SqlCommand cmd = new SqlCommand();

cmd.CommandText = "dbo.sx_pro_QueryTest";

cmd.CommandType = CommandType.StoredProcedure;

cmd.Connection = Docmd.cnn;

cmd.CommandTimeout = 180;

SqlDataAdapter da = new SqlDataAdapter(cmd);

cmd.Parameters.AddWithValue("@QueryNo",queryNo);

cmd.Parameters.AddWithValue("@Whr", conditions);

DataSet ds = new DataSet();

da.Fill(ds,"t1");

DataTable dt = ds.Tables["t1"];

int qtyRows = dt.Rows.Count;

if(qtyRows==0)

{

Docmd.msgInfo("no records found. \r\n 没有找到记录");

goto line1;

}

int qtyCols = dt.Columns.Count;

int rn = 0;

int cn = 0;

object[,] objTitle = new object[1, qtyCols];

foreach (DataColumn dc in dt.Columns)

{

objTitle[0, cn] = dc.ColumnName;

cn++;

}

object[,] objData = new object[qtyRows, qtyCols];

foreach (DataRow dr in dt.Rows)

{

cn = 0;

foreach (DataColumn dc in dt.Columns)

{

objData[rn, cn] = dr[dc].ToString();

cn++;

}

rn++;

}

excel.Application xlApp = new excel.Application();

excel.Workbook wk = xlApp.Workbooks.Add();

excel.Worksheet sht = wk.Worksheets[1];

xlApp.Visible = true;

excel.Range myRange_Title = sht.Range[sht.Cells[1, 1], sht.Cells[1, qtyCols]];

myRange_Title.Value2 = objTitle;

excel.Range myRange = sht.Range[sht.Cells[2, 1], sht.Cells[qtyRows + 1, qtyCols]];

myRange.Value2 = objData;

sht.UsedRange.WrapText = false;

line1:

ds.Dispose();

cmd.Dispose();

}

catch(Exception ex)

{

Docmd.msgInfo(ex.Message);

}

finally

{

Docmd.cnnClose();

}

return _bl;

}

c# 导出DataSet到excel的更多相关文章

  1. WinForm导出DataSet到Excel

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. Delphi 导出数据至Excel的7种方法【转】

    一; delphi 快速导出excel   uses ComObj,clipbrd;   function ToExcel(sfilename:string; ADOQuery:TADOQuery): ...

  3. Delphi 导出数据至Excel的7种方法

    一; delphi 快速导出excel uses ComObj,clipbrd; function ToExcel(sfilename:string; ADOQuery:TADOQuery):bool ...

  4. 【C#常用方法】2.DataTable(或DataSet)与Excel文件之间的导出与导入(使用NPOI)

    DataTable与Excel之间的互导 1.项目添加NPOI的引用 NPOI项目简介: NPOI是一个开源的C#读写Excel.WORD等微软OLE2组件文档的项目,特点是可以在没有安装Office ...

  5. C#实现Excel模板导出和从Excel导入数据

    午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.Office.Interop.Excel 3.封装的Exc ...

  6. ASP.NET导出数据到Excel 实例介绍

    ASP.NET导出数据到Excel  该方法只是把asp.net页面保存成html页面只是把后缀改为xlc不过excel可以读取,接下连我看看还有别的方式能导出数据,并利用模版生成. 下面是代码 新建 ...

  7. 一个方便且通用的导出数据到 Excel 的类库

    一个方便且通用的导出数据到 Excel 的类库 起源: 之前在做一个项目时,客户提出了许多的导出数据的需求: 导出用户信息 导出业务实体信息 各种查询都要能导出 导出的数据要和界面上看到的一致 可以分 ...

  8. 从数据库导出数据到excel之POI操作

    项目说明: 1:数据库中有两张表,主键关联 2:根据条件查询数据 3:处理为需要的数据封装类型,然后传到导出excel的方法中 <--框架部署就不详谈了,用的spring框架--> 补充: ...

  9. SpringBoot图文教程10—模板导出|百万数据Excel导出|图片导出「easypoi」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

随机推荐

  1. 有oracle 10g,但没有安装arcgis,又想使用空间数据库的解决方案

    我在一台虚拟机中部署系统进行测试,配置如下: OS:WIN2008 R2 SP1 X64 DB: oracle 12c 结果系统报错,查找原因,原来是oracle里还不支持arcgis的一些所谓的空间 ...

  2. tunctl和虚拟网卡

    1 tun/tap驱动 1.1 网卡驱动 同tcp/ip协议栈打交道,接受和发送数据包 1.2 字符驱动 内核和用户态通过字符设备交换数据包. 2 tun虚拟网卡的创建 tunctl -t tun0 ...

  3. handsontable整理

    hansontable简介 hansontable是一个在线类似Excel的表格编辑器,支持丰富的展现和交互,有多样的单元格类型供配置. 核心是由原生JavaScript构建,充分模块化,支持自定义b ...

  4. (2)mac下安装MySql数据库软件

    一,软件下载: https://dev.mysql.com/downloads/mysql/ 也可以从其他资源下载.不一定非要官方下载 二,安装 这个比较简单,之间双击开启安装程序,一直下一步就可以. ...

  5. HDU1260 Tickets —— DP

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1260 Tickets Time Limit: 2000/1000 MS (Java/Oth ...

  6. openxml in sql server

    OPENXML (Transact-SQL) OPENXML provides a rowset view over an XML document. Because OPENXML is a row ...

  7. UVa 11538 Chess Queen (排列组合计数)

    题意:给定一个n*m的棋盘,那么问你放两个皇后相互攻击的方式有多少种. 析:皇后攻击,肯定是行,列和对角线,那么我们可以分别来求,行和列其实都差不多,n*A(m, 2) + m*A(n, 2), 这是 ...

  8. jQuery笔记之animate中的queue

    队列 队列的执行顺序 queue() dequeue() 输出对象里面的内容 依次出队 不过这样写太麻烦了,因为每次都要输出,所以我们看下面的方法 运用到队列输出的 <!DOCTYPE html ...

  9. #define及其用法

    #define     在#define中,标准只定义了#和##两种操作.#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符     串. #include<stdio.h ...

  10. C++中的四种强制类型转换符详解

    阅读目录 C++即支持C风格的类型转换,又有自己风格的类型转换.C风格的转换格式很简单,但是有不少缺点的: 转换太过随意,可以在任意类型之间转换.你可以把一个指向const对象的指针转换成指向非con ...