C#从数据库导出数据[excel]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
using Microsoft.Office.Interop.Excel;
using Excel = Microsoft.Office.Interop.Excel; //使用命名空间别名
using System.Reflection;
namespace _01
{
class Tools
{
static void Main(string[]args)
{
if(ExportDataTableToExcel(SqlHelper.ExecuteTable("SELECT * FROM students", CommandType.Text, null),@"E:\03.xls"))
{
Console.WriteLine("OK!");
}
else{
Console.WriteLine("Fail!");
}
Console.ReadKey();
}
public static boolExportDataTableToExcel(System.Data.DataTable dt, stringfilepath)
{
Excel.ApplicationoXL; //应用
Excel.Workbook oWB; //工作簿
Excel.WorksheetoSheet; //工作表
Excel.Range oRange; //单元格
try
{
// Start Excel and get Application object.
oXL = new Excel.Application(); //启动并且创建对象
// Set some properties
oXL.Visible = true;
oXL.DisplayAlerts = false; //设置警告信息的默认值
// Get a new workbook.
oWB = oXL.Workbooks.Add(Missing.Value);
// Get the Active sheet
oSheet = (Excel.Worksheet)oWB.ActiveSheet;
oSheet.Name = "Data";
introwCount = 1;
foreach(DataRow dr in dt.Rows)
{
rowCount += 1;
for(int i = 1; i < dt.Columns.Count +1; i++)
{
// Add the header the first timethrough
if (rowCount ==2)
{
oSheet.Cells[1, i] = dt.Columns[i -1].ColumnName;
}
oSheet.Cells[rowCount, i] = dr[i - 1].ToString();
}
}
// Resize the columns
oRange = oSheet.Range[oSheet.Cells[1,1],
oSheet.Cells[rowCount, dt.Columns.Count]];
oRange.EntireColumn.AutoFit();
// Save the sheet and close
oSheet = null;
oRange = null;
oWB.SaveAs(filepath, Excel.XlFileFormat.xlWorkbookNormal,
Missing.Value, Missing.Value,Missing.Value, Missing.Value,
Excel.XlSaveAsAccessMode.xlExclusive,
Missing.Value, Missing.Value,Missing.Value,
Missing.Value, Missing.Value);
oWB.Close(Missing.Value,Missing.Value, Missing.Value);
oWB = null;
oXL.Quit();
}
catch
{
throw;
}
finally
{
// Clean up
// NOTE: When in release mode, this does thetrick
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
returntrue;
}
}
}
Tips:SqlHelper未提供。
转载于:https://blog.51cto.com/germa66/1971215
相关文章:

UI设计培训中的扁平化理念
本文是为正在学习UI设计的同学们整理的一份资料,主要讲的是UI设计培训中的扁平化理念,扁平化的设计是抛弃一切装饰的设计,扁平化设计使得用户操作起来更加简洁、高效和舒适。简洁大方的交互界面设计自然能够引导用户,并且在短时间…
刻意练习:Python基础 -- Task12. 模块
背景 我们准备利用17天时间,将 “Python基础的刻意练习” 分为如下任务: Task01:变量、运算符与数据类型(1day)Task02:条件与循环(1day)Task03:列表与元组(…

Linux JSP连接MySQL数据库
Linux(Ubuntu平台)JSP通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 下载 jdbc: mysql-connector-java-5.1.18.tar.gz 解压 jdbc: tar -zxvf mysql-connector-java-5.1.18.tar.gz 配置 …

h5 getUserMedia error PermissionDeniedError
HTML5 在使用非 localhost 地址访问时打开摄像头失败 。报getUserMedia error PermissionDeniedError,火狐下是可以正常调取的。 需要https: 火狐: 转载于:https://www.cnblogs.com/cosyer/p/7646672.html

女生零基础学软件测试难不难
软件测试属于一门IT技术编程语言,很多人都觉得IT技术都是男性比较多,按照目前的行业数据来看,确实是男性居多,但最近几年,女性程序猿也越来越多,其中就有软件测试这个岗位,下面具体来看看女生零…

技术图文:NumPy 的简单入门教程
背景 这段时间,LSGO软件技术团队正在组织 “机器学习实战刻意练习”活动,这个活动是“Python基础刻意练习”活动的升级,是对学员们技术的更深层次的打磨。在用 Python 写各类机器学习算法时,我们经常会用到 NumPy库,故…

Android常见错误
1、Unable to resolve target android-2 安装低版本的api,再default.properties 这个文件中把targetandroid-2 改成 targetandroid-7终于就没有问题了。 2、Invalid start tag LinearLayout main.xml放错文件夹了,应该在\res\layout下。 3、INSTALL_FAIL…

【开发】简易教程
本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果。这个小程序的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开的页面中查看当前小程序的启动日志。下载源码 1. 获取微信小程序的 AppID 登录…

Python未来的发展趋势怎么样
Python未来的发展趋势怎么样?最近很多人都在学习Python技术,但是在学习的过程中,还是比较担心Python是否有发展前景这个问题,我们来看看下面的详细解析。 Python未来的发展趋势怎么样? 一、从事Python的待遇高。 由于Python语言的应用领域很…

刻意练习:机器学习实战 -- Task01. K邻近算法
背景 这是我们为拥有 Python 基础的同学推出的精进技能的“机器学习实战” 刻意练习活动,这也是我们本学期推出的第三次活动了。 我们准备利用8周时间,夯实机器学习常用算法,完成以下任务: 分类问题:K邻近算法分类问…

RIFF格式声音文件的实现(转)
摘要:本文简述RIFF格式声音文件的构成,通过调用多媒体文件I/O的三个重要函数及WAVEFormatX结构数据的使用方法来实例阐述RIFF格式声音文件的实现过程。 关键词:RIFF[资源交换文件]格式 函数 结构数据 声音是多媒体的一个重要组成部份,在应用程…

使用PermissionsDispatcher轻松解决Android权限问题
之前也处理过6.0后的权限问题,直接处理很是麻烦。这次在github上搜到了关于权限星数最多的PermissionsDispatcher这个库,几个注释完美解决权限问题。 第一步 添加各种注释 1.RuntimePermissions 注释在需要权限的Activity和Fragment RuntimePermissions …

什么人适合学习web前端?怎样学好web前端开发?
web前端在IT互联网行业的发展前景是非常可观的,越来越多的人都在学习web前端技术,那么什么人适合学习web前端?怎样学好web前端开发?相信大家都想了解这些问题,我们来看看下面的详细介绍。 什么人适合学习web前端?怎样学好web前端开发? 一…

浏览器缓存导致FLASH资源更新问题的解决方案
在网上搜浏览器缓存问题时,遇上了很多问题。一是不知道应该用何种关键字搜索,二是一搜出来,就全是讲的是如何禁用浏览器缓存的方案。 作为大型点的FLASH WEBGAME来说,不缓存显然是不行的。总体上来说,我们要想达到的目…

技术图文:Python的属性装饰器详解
背景 我们在以前的一篇图文 Python基础 – Task10. 类与对象 中介绍过利用property()方法既能保护类的封装特性,又能让开发者可以使用“对象.属性”的方式操作类属性。 class property([fget[, fset[, fdel[, doc]]]])用于在新式类中返回属性值。 fget – 获取属…

又一个强大的PHP5.3依赖注入容器
简单的服务容器 一个简单的 php 5.3 依赖注入容器。 项目地址:https://github.com/godruoyi/easy-container Why 目前比较流行的 PHP 容器: PimpleLaravel Container其他依赖注入容器Pimple 是一个简单优秀的 php 5.3 容器,也是目前用得最多的…

软件测试培训:如何搭建测试环境
如何搭建测试环境?这是很多测试人员都需要了解的,测试是每个产品上线前必备的一个检验,不管是什么产品,做好有效的测试是对产品质量的一个负责,软件测试环境要考虑的就是软件在什么软硬件下能正常运行,什么环境下不能…

技术图文:如何爬取一个地区的气象数据(上)?
背景 架空线路主要指架空明线,架设在地面之上,是用绝缘子将输电导线固定在直立于地面的杆塔上以传输电能的输电线路。架设及维修比较方便,成本较低,但容易受到气象和环境(如大风、雷击、污秽、冰雪等)的影…

C#按关闭按钮实现最小化,按ESC才关闭的实现【含系统消息大全】
protected override void WndProc(ref Message m) { const int WM_SYSCOMMAND 0x0112; const int SC_CLOSE 0xF060; if (m.Msg WM_SYSCOMMAND && (int)m.WParam SC_CLOSE) { // 屏蔽传入的消息事件 …

眠眠interview Question
1. Wkwebkit在异步回调 如何像webview的回调 一样在主线程回调。可以使用runloop 解决么? dispatch get main queue http://www.jianshu.com/p/a2fc399075e0 转载于:https://www.cnblogs.com/tufei7/p/7657617.html

哪些人适合参加软件测试培训
软件测试是现在很多企业需求都非常大的一个岗位,只要是互联网行业基本都是有需求的,那么想要学习软件测试,哪些人适合参加软件测试培训呢?来看看下面的详细介绍。 哪些人适合参加软件测试培训? 想从零开始进入软件技术行业 软件测试的优势是…

从iso镜像升级ubuntu
步骤: 1.从网上下载Alternate版本的ISO镜像 2.加载ubuntu镜像 # mount -t iso9660 -o loop ubuntu-11.10-alternate-i386.iso /mnt/cdrom/3.进入/mnt/cdrom/ 运行cdromupgrade 程序 # cd /mnt/cdrom/ # ./cdromupgrade转载于:https://www.cnblogs.com/dudp/archive…

技术图文:如何爬取一个地区的气象数据(下)?
背景 架空线路常见的故障有:风偏闪络故障、雷击跳闸故障、雷击断股故障、线路覆冰故障、线路污闪故障、线路外力破坏故障、线路鸟害故障等等。从这些故障中,我们可以看出天气对线路的安全运行起到非常重要的作用。 在上一篇图文 如何爬取一个地区的气象…

Android :landscape||portrait 切换
可在AndroidManifest.xml里面配置屏幕发现。 在<Activity>中加入这一行android:screenOrientation"landscape/portrait " android中每次屏幕的切换动会重启Activity(可以在Activity销毁前保存当前活动的状态,在Activity再次Create的时候…

web前端开发培训完就业前景怎么样
很多人都在学习web前端技术,认为学好这一项编程技术,找工作是非常稳定的,那么到底web前端开发培训完就业前景怎么样呢?来看看下面的详细介绍就知道了。 web前端开发培训完就业前景怎么样? web前端薪资待遇 从图中我们能够看到web前端从业者…

技术图文:如何改进算法的运行效率?
背景 前段时间,一位好友发给我如下的文件: 每个CSV文件中的数据由三个属性组成,第一个属性为ID,第二个属性为X坐标,第三个属性为Y坐标。由于是二维数据,可以绘制出每个文件的散点图,把这些散点…
B树,B+树,B-树和B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: …

JS对象直接量,数组直接量和函数直接量
对象直接量创建一个对象: var obj {x:[1,2],y:23}; 代码跟下面是一样的。 var objnew Object(); obj.xnew Array(1,2); obj.y23; 测试:for(var i in obj) alert(obj[i]); 函数直接量:它是一个表达式而不是语句。 (function(){})() 如下例&am…

学习Java编程培训的书籍有哪些
学习java技术除了线上线下的培训学习,书籍的知识也是非常重要的,今天小编为大家整理的就是学习Java的一些书籍,Java书籍是程序员学习提升技能的重要学习渠道,通过书籍Java程序员可以学习当前流行、重要的相关技能。下面我们一起来…

Datawhale组队学习:数据结构与算法课程任务
背景 Datawhale 是国内很有名的一个开源学习组织。这个组织将渴望改变的学习者以及一群有能力有想法的青年人集结在一起,营造出一种互促高效的学习环境,一起为开源学习付出努力。 Datawhale 近期将推出三门课程的组队学习。我先将 数据结构与算法&…