用C#语言把数据库如何导出成多表头EXcel文件
下面的函数作用,将DataTable导出到EXCEL文件:
private void DataTabletoExcel(System.Data.DataTable tmpDataTable,string strFileName)
{
if (tmpDataTable == null)
{
return;
}
int rowNum = tmpDataTable.Rows.Count;
int columnNum = tmpDataTable.Columns.Count;
int rowIndex = 1;
int columnIndex = 0;
Excel.Application xlApp = new Excel.ApplicationClass();
xlApp.DefaultFilePath = "";
xlApp.DisplayAlerts = true;
xlApp.SheetsInNewWorkbook = 1;
Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
//将DataTable的列名导入Excel表第一行
foreach(DataColumn dc in tmpDataTable.Columns)
{
columnIndex ++;
xlApp.Cells[rowIndex,columnIndex] = dc.ColumnName;
}
//将DataTable中的数据导入Excel中
for(int i = 0;i<rowNum; i++)
{
rowIndex ++;
columnIndex = 0;
for (int j = 0;j<columnNum; j++)
{
columnIndex ++;
xlApp.Cells[rowIndex,columnIndex] = tmpDataTable.Rows[i][j].ToString();
}
}
xlBook.SaveCopyAs(strFileName + ".xls");
}
先将数据绑定到一个控件中,例如gridview:
放一个按钮,代码如下:
protected void ibtnExcel_Click(object sender, ImageClickEventArgs e)
{
string FileName = "标题 " + DateTime.Now + ".xls";
Response.Charset = "GB2312";
Response.ContentEncoding = Encoding.UTF8;//System.Text
//如果设置GB2312会出现乱码
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.AddHeader("content-type", "application / ms - excel");//设置输出文件的类型
//或Response.ContentType = FileType;
//定义一个输出流
StringWriter tw = new StringWriter();//System.IO
HtmlTextWriter hw = new HtmlTextWriter(tw);
gridview1.RenderControl(hw);//gridview绑定
Response.Write(tw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
//必须写这个;
}
1.创建解决方案
菜单》新建》项目》Windows窗体应用程序:
2.添加相关组件:
添加两个DataGridView,一个TextBox,两个按钮 ,如下图:
3.添加Excel资源:
C#创建Excel文件,这里实际上是从资源中提取一个事先创建好的Excel文件,文件提取成功后,使用OleDb方法连接Excel,向Excel文件中写入数据。
先在文件夹中新建一个Excel文件,在Sheet1表的第一行设置列名:
4.双击“Resources.resx”文件打开资源文件视图:
5.添加现有文件,选择刚刚创建的Excel文件。
6.从资源中提取Excel文件。
7.定义连接字符串。
8.注意:连接字符串中IMEX的值使用的是10,如果是1或2,在执行Insert Into语句时就会报“操作必须使用一个可更新的查询”的错误。
在dataGridView1中显示Excel文件中的所有表的信息。
9.向"Sheet1"表中插入几条数据,访问Excel的表的时候需要在表名后添加"$"符号,Insert语句可以不指定列名。
10.在dataGridView2中显示表"Sheet1"的内容,访问Excel的表的时候需要在表名后添加"$"符号。
11.遍历Schema的内容。
12.关闭Excel数据连接。
13.打开文件目录。
14.最终效果。
Excel操作主要是通过应用程序完成Excel与数据库信息的操作。目前我所掌握的有三种方法可以完成:1、使用com组件:通过对Excel的引用,编写专门的代码类,设计专门的方法或函数来完成。引用:Micsoroft.Office.Core引用:Micsoroft.Office.Interop.Excelusing Microsoft.Office.Core;using Excel = Microsoft.Office.Interop.Excel;2、直接在Visual Studio 2008建立Excel项目,编写专门的代码类,设计专门的方法或函数来完成。3、用T_SQL语句:SELECT * INTO TableName FROM OPENROWSET(‘MICROSOFT.JET.4.0’,’EXCEL 5.0;HDR=YES;DATABASE=FileName’,sheet1$)
C代表什么?
大写字母C,下标n,上标m,表示从n个元素中取出m个元素的不同的方法数.如从5个人中选2人去开会,不同的选法有C(5,2)=10种。C(n,m)的计算方法是C(n,m)=n!\/[m!(n-m)!]=n*(n-1)*...*(n-m+1)\/[1*2*...*m],如C(5,2)=[5*4]\/[1*2]=10。
c语言中.c是什么意思
在C语言中,.c是一种源代码文件的文件格式后缀名。在程序编写阶段,程序员通常使用文本编辑器编写C语言的代码,保存为.c文件格式,以便在后续编译和链接的过程中被编译器所使用。.C文件是编译器的输入文件,也是程序员们的“书写笔记”。为了方便管理代码,程序员们通常会将一组相关的.c文件组织成一个...
C是什么函数
详情请查看视频回答
c端是什么意思,什么是b端?
使用B端往往是长时间、沉浸式,B端是服务于公司或企业所有员工C端,面对面对个人用户,多为单个个体使用,讲究用户的使用感觉,有一个核心的功能,其他的功能都是附加的,是为“碎片化的时间”服务的,特点是数据量大,因为用户群大,数据增长都是指数级的。差别C端和B端的定义C端:Consumer(也可理解...
计算机C语言中的“C”代表什么意思?
计算机C语言中的“C”代表着Combined,结合、组合、合并的意思。C语言是一门通用计算机编程语言,其发展经历了许多的科学家们的加工处理。C语言之所以命名为C,是因为 C语言源自Ken Thompson于1970年发明的B语言,而 B语言则源自BCPL语言。其发展主要历程为:1967年,剑桥大学的Martin Richards对CPL语言进行...
c的化学式的意义。。。
C为碳的元素符号。一、作为化学式,它的含义为:1、表示碳单质,如金刚石 ,或者石墨。。。2、表示金刚石或者石墨。。。由碳元素组成 3、表示金刚石或者石墨。。。由碳原子构成 二、另外,作为元素符号:1、还表示碳元素 2、还表示一个碳原子。
c语言科学记数法正确表示方法
c语言科学记数法正确表示方法如下:1、使用浮点数常量和整数常量来表示科学记数法:double number1=2.5e3;\/\/表示2.5乘以10的3次方。double number2=1.2e-4;\/\/表示1.2乘以10的-4次方。2、使用科学记数法表示法表示浮点数的常量:double number3=1.234e-5;\/\/表示1.234乘以10的-5次方。do...
C++与C有什么区别于联系?
主要区别:C语句是面向结构的语言,C++是面向对象的语言,C++从根本上已经发生质飞跃,并对C进行丰富的扩展。C与C++的区别 C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),...
驾驶证的A,B,C本如何划分
驾驶证的A,B,C本划分:大型客车或者重型公交车都属于驾驶证的a本;中型客车或者中型载货汽车都属于驾驶证的B本;小型客车或者小型的自动挡汽车都属于驾驶证的C本。具体的可以咨询更专业的工作人员。一、 关于驾驶证社会发展的越来越好了,很多人都会买车,因为汽车是出行的最好工具。而在买汽车之前是...
股票中的C代表什么意思?
股票前面字母C代表股票上市后次日至第五日。股票简称中的字母N,代表股票上市首日。股票简称中如果标有字母U,表示这家公司尚未盈利;若实现盈利,这个标识就会取消。股票简称中标有字母W,代表股票发行人具有表决权差异安排;而字母V则代表股票发行人具有协议控制架构或者类似特殊安排。:股票六大特征 1、...
布功艾鲁: 1.创建解决方案 菜单》新建》项目》Windows窗体应用程序:2.添加相关组件:添加两个DataGridView,一个TextBox,两个按钮 ,如下图:3.添加Excel资源:C#创建Excel文件,这里实际上是从资源中提取一个事先创建好的Excel文件,文件提...
黄岩区18665137991: 用C#语言把数据库如何导出成多表头EXcel文件?
布功艾鲁: Excel操作主要是通过应用程序完成Excel与数据库信息的操作.目前我所掌握的有三种方法可以完成: 1、使用com组件:通过对Excel的引用,编写专门的代码类,设计专门的方法或函数来完成. 引用:Micsoroft.Office.Core 引用:Micsoroft....
黄岩区18665137991: C#获取 sqlserver 存储过程返回多表数据 - ?
布功艾鲁: 返回的时候用dataset就可以,比如你存储过程这样写 select * from A select * from B select * from C select * from D select * from D 在执行完存储过程后返回一个dataset dataset ds = 执行存储过程 ds.tables[0]就是表A ds.tables[1]就是表B ds.tables[2]就是表C 剩下的依次类推.
黄岩区18665137991: C#怎么样实现把数据从数据库的一个表取出存入数据库的另一个表中 - ?
布功艾鲁: 假设源表是TabA,目标表为TabB 直接SQL语句啊,如果这个目标表TabB不存在可以用下面的语句 select fieldlist into tabB from tabA 这时候会自动创建目标表如果目标表已经存在,是要往里面追加一些数据的话,可以用 insert into TabB (fieldlist) select fieldlist from TabAfieldlist为字段列表
黄岩区18665137991: C#winform编程如何用datagridview控件实现多表头?
布功艾鲁: 你在页眉文本那输入你想做为表头文本,再点击添加,这样重复输入,,,不想要了,就点取消.
黄岩区18665137991: 请教:(C# Windows应用程序)怎样将access数据库中的数据导出到一张excel表中…谢谢?
布功艾鲁: C#实现和Office Excel的集成需要使用System.Office命名空间,或者Microsoft Excel Object 的COM组件,然后导出.
黄岩区18665137991: C#实现 SQL数据库导出到EXCEL?
布功艾鲁: 很明显的,'bcp Northwind.dbo.myTabe out \"c:\test.xls\" /c -/S\"192.168.1.239:1433\" /U\"sa\"-p\"yxaf123\"',这个错误有多处,最好在命令提示符里调试一下再改成C#的格式. bcp Northwind.dbo.????? out c:\test.xls /c /S [服务器名] /U ?? /P ?????? 此句在我机器上命令提示符里能通过,能生成test.xls .
黄岩区18665137991: C#怎么取出数据库的多列数据,用数组保存起来 - ?
布功艾鲁: 把从数据库取出来的数据放到dataset中,如这样:for(int i=0;i
黄岩区18665137991: 用C#如何将sql数据库导出成excel文件 - ?
布功艾鲁: 用数据流. 先将数据绑定到dataview.然后如下.注:dgvAgeWeekSex==dataview的name private void SaveAs() //另存新档按钮 导出成Excel { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Execl files (*.xls)|*.xls...
黄岩区18665137991: 怎么用C#把数据库中的数据导出到EXCEL - ?
布功艾鲁: 下面的函数作用,将DataTable导出到EXCEL文件: private void DataTabletoExcel(System.Data.DataTable tmpDataTable,string strFileName) { if (tmpDataTable == null) { return; } int rowNum = tmpDataTable.Rows.Count; int columnNum = ...