把gridview1的数据导出到excel的sheet1把gridview2的数据导出到excel的sheet2.

author author     2023-03-30     509

关键词:

情况是这个样子的:
在一个页面里有俩个GridView,有一个导出按钮,点击导出按钮的时候,把GridView1的内容导出到excel的sheet1里,
把GridView2的内容导出到excel的sheet2里。
大家帮帮忙吧,谢谢。

另外还有几个小问题:
1.导出的时候怎么在excel中插入一行,就是想写个表头,表头的字自己写。(用代码实现)
2.excel的sheet1的名字怎么改掉?(用代码实现)
谢谢大家了。能帮一个就帮一个吧。

/// <summary>
/// 把DataGridView到导出到Excel中
/// </summary>
/// <param >数据源DataGridView</param>
/// <param >保存文件名称</param>
/// <param >是否显示Excel界面</param>
/// <returns>导出是否成功</returns>
private bool ExportForDataGridview(System.Windows.Forms.DataGridView gridView, string fileName, bool isShowExcle, out string exceptionInfo)

bool isok = false;
exceptionInfo = "";
//建立Excel对象
Microsoft.Office.Interop.Excel.Application app = null;
try

app = new Microsoft.Office.Interop.Excel.Application();

catch

exceptionInfo = "无法创建Excel对象,请确保您的机器安装有MicroSoft Office 2003 Excel。";
isok = false;

if (app != null)

try

app.Visible = isShowExcle;
Workbooks workbooks = app.Workbooks;
_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Sheets sheets = workbook.Worksheets;
_Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
if (worksheet == null)

exceptionInfo = "无法创建Excel工作表,未知错误。";
isok = false;

else

//求得当前显示列的数目
int columnCount = 0;
for (int i = 0; i < gridView.ColumnCount; i++)

if (gridView.Columns[i].Visible)

columnCount++;



string sLen = "";
//取得最后一列列名
char H = (char)(64 + columnCount / 26);
char L = (char)(64 + columnCount % 26);
if (columnCount < 26)

sLen = L.ToString();

else

sLen = H.ToString() + L.ToString();


//标题
string sTmp = sLen + "1";
Range ranCaption = worksheet.get_Range(sTmp, "A1");
string[] asCaption = new string[columnCount];
int asCaptionIndex = 0;
for (int i = 0; i < gridView.ColumnCount; i++)

if (gridView.Columns[i].Visible)

asCaption[asCaptionIndex] = gridView.Columns[i].HeaderText;
asCaptionIndex++;


ranCaption.Value2 = asCaption;

//数据
object[] obj = new object[columnCount];
int objIndex = 0;
for (int r = 0; r < gridView.RowCount - 1; r++)

for (int l = 0; l < gridView.Columns.Count; l++)

if (gridView.Columns[l].Visible)

if (gridView[l, r].ValueType == typeof(DateTime))

obj[objIndex] = gridView[l, r].Value.ToString();

else if (gridView[l, r].ValueType == typeof(String))

obj[objIndex] = "\'" + gridView[l, r].Value.ToString();

else

obj[objIndex] = gridView[l, r].Value;

objIndex = (objIndex + 1) % columnCount;


string cell1 = sLen + ((int)(r + 2)).ToString();
string cell2 = "A" + ((int)(r + 2)).ToString();
Range ran = worksheet.get_Range(cell1, cell2);
ran.Value2 = obj;


//保存
workbook.SaveCopyAs(fileName);
workbook.Saved = true;

isok = true;



catch (Exception err)

exceptionInfo = err.Message;
isok = false;

finally

if (app != null)

//关闭
app.UserControl = false;
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;



return isok;



需要引入
using Microsoft.Office.Interop.Excel;

----另外一种方法:

// 导出列表信息到Excel
public static void gSendGridInfoToExcel(DataGrid GridX)

Excel.Application excel= new Excel.ApplicationClass();
Excel._Workbook xBk = excel.Workbooks.Add(true);
Excel._Worksheet xSt = (Excel._Worksheet)xBk.ActiveSheet;
Excel.Range excelCell=null;
try


//赋值对象
object[] objarr;
DataTable dtTest=new DataTable();;
int i,j;
int iRows,iCows;
int iVisable;
iVisable=0;
iCows=0;
ArrayList list=new ArrayList();
//如果绑定数据源是DataTable和DataSet,取得行数
if (GridX.DataSource is System.Data.DataSet || GridX.DataSource is System.Data.DataTable)

dtTest=(DataTable)GridX.DataSource;
iRows=dtTest.Rows.Count;

else if (GridX.DataSource is System.Data.DataView)

DataView dvTest=(DataView)GridX.DataSource;
iRows=dvTest.Count;
dtTest=dvTest.Table;

//如果是集合取得行数
else

System.Collections.CollectionBase ColTest;
ColTest=(System.Collections.CollectionBase)GridX.DataSource;
iRows=ColTest.Count;

//如果有TableStyles则根据TableStyles取得(标题行)
if (GridX.TableStyles.Count>0)

iCows=GridX.TableStyles[0].GridColumnStyles.Count;
for(i=0;i<iCows;i++)

if(GridX.TableStyles[0].GridColumnStyles[i].Width>0)

iVisable++;
list.Add(GridX.TableStyles[0].GridColumnStyles[i].HeaderText);



objarr = new object[iVisable];
objarr=list.ToArray();
excelCell = xSt.get_Range(excel.Cells[1,1],excel.Cells[1,iVisable]);
excelCell.Value2 = objarr;
//数据行
for(i=0;i<iRows;i++)

objarr = new object[iVisable];
list.Clear();

for(j=0;j<iCows;j++)

if(GridX.TableStyles[0].GridColumnStyles[j].Width>0)

list.Add("\'"+GridX[i,j].ToString().Replace("\\n",""));



if (list.Equals(System.DBNull.Value))

break;

objarr=list.ToArray();
excelCell = xSt.get_Range(excel.Cells[i+2,1],excel.Cells[i+2,iVisable]);
excelCell.Value2 = objarr;


else

iCows=dtTest.Columns.Count;
for(i=0;i<iCows;i++)

list.Add(dtTest.Columns[i].Caption);

objarr = new object[iCows];
objarr=list.ToArray();
excelCell = xSt.get_Range(excel.Cells[1,1],excel.Cells[1,iCows]);
excelCell.Value2 = objarr;

//数据行
for(i=0;i<iRows;i++)

objarr = new object[iCows];
list.Clear();

for(j=0;j<iCows;j++)

list.Add("\'"+GridX[i,j].ToString().Replace("\\n",""));

if (list.Equals(System.DBNull.Value))

break;

objarr=list.ToArray();
excelCell = xSt.get_Range(excel.Cells[i+2,1],excel.Cells[i+2,iCows]);
excelCell.Value2 = objarr;



dtTest.Dispose();

excel.Visible=true;


catch (System.Exception e)

throw e;

finally

excelCell=null;
xBk=null;
xSt=null;
excel=null;
GC.Collect();




参考技术A 职位信息收藏] [该公司所有职位] [介绍给朋友] 参考技术B 楼上的大能,这个也可以啊

用asp.net把gridview中的所有数据导出到excel中没问题,根据条件查询的信息导出到excel中怎么整???

先查询你想要的结果绑定后,然后导出不就行了?如果是在已经绑定好的里面再筛选的话,不妨加个checkbox参考技术A你把根据条件查询的信息也绑定在导出的方法里面,代码我也有。 查看详情

c#winform中如何把表导出到excel

...个写到EXCEL文件中?具体怎么写高手指点下,我用的ACCESS数据库。最好给个例子看看~DataSet数据集内数据转化为Excel文件///<summary>///ExportFiles的摘要说明。///作用:把DataSet数据集内数据转化为Excel文件///描述:导出Excel文件///... 查看详情

如何把sqlserver表数据导出为excel文件

在SQL数据库的很多应用场景中,需要将SQL中的某个数据库或查询的结果导出到EXCEL中,因为Excel更容易对数据处理和方便用户邮箱传输。本次经验归纳了SQL数据表导出到EXCEL中的三种方法:1、复制粘贴,将SQL查询语句按指定条件... 查看详情

如何将数据库中的数据导出到excel?

参考技术A在这里介绍把数据库中的数据导出到excel的方法,希望本指南能帮到大家。01双击打开access数据库。进入到操作界面。02鼠标移到菜单栏,点击:外部数据03下面即弹出与之相关的功能区。我们看“导出”这功能区。04在... 查看详情

如何把sqlserver表数据导出为excel文件

1、少量数据,直接在查询分析器中用SQL语句检索出数据,选定数据,点击鼠标右键可以直接另存为。2、批量数据,可以使用服务器附带的,DTS数据导入导出工具。参考技术A  1  方法一:对于会写查询SQL语句的则是直接写... 查看详情

如何在mysql里把数据导出成excel文件

在SQL数据库的很多应用场景中,需要将SQL中的某个数据库或查询的结果导出到EXCEL中,因为Excel更容易对数据处理和方便用户邮箱传输。本次经验归纳了SQL数据表导出到EXCEL中的三种方法:1、复制粘贴,将SQL查询语句按指定条件... 查看详情

百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司电话地址等数据导出excel里?

...出表格?怎样将把百度地图里面搜索到的公司电话地址等数据导出excel里?现在,很多人都在网络上找商家,联系业务。百度地图里有很多的商家联系方式地址等数据,这便成为很多人的便捷方式。但是一个个地复制出来商家的... 查看详情

把数据库数据导出excel

...最大值的时候回重新开启新的工作区,以及导出到excel的数据都是相应的数据类型,以往的导出都是字符串类型,所以当要进行计算的时候就很麻烦,下面的这个例子我大概导了20万数据做测试,没有出现问题,次类可支持百万... 查看详情

怎么把excel中的数据批量导入到mysql数据中

想把excel中的数据导入到mysql数据库中,有什么办法,有什么软件?1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。否则导入数据库后会有对应的空行),假如存到“D:\data.txt”这个位置里。2.根据要... 查看详情

怎样把access里面的上百万的数据导出到excel里面来?我现在是2010office。

...就鼠标手了,近2百万条一个,而且还有几十个这样的在数据等我。。。最好能帮我远程一下教我个简单高效的方法,麻烦你了!qq411485875.参考技术A很简单,你打开要导出的表,在上面工具栏点击“外部数据”选择“导出”Excel... 查看详情

asp.net中,如何实现将page页面各个空间的属性值,导出下载到一个word或excel中

...用把所有的控件的值都导出吧,一般导出的都是数据,如GridView1,等数据控件中的值,这个倒是很简单的。参考技术Aforeach循环页面所有controls,写入EXCEL。操作EXCEL请另查询,很容易的。 参考技术B首先,你要知道如何得到控件... 查看详情

如何把sqlserver表数据导出为excel文件

SQLServer表数据导出为Excel文件方法:1、选择数据库,启动导入和导出向导2、选择数据源3、选择目标4、然后一直点“下一步”按钮即可参考技术A最简单的方法就是使用Sqlserver自带的数据导入和导出工具来实现。1,数据导入和导... 查看详情

网页数据导出excel的方法

参考技术A  在Excel中录入数据的时候通常数据都是有源文件的,这个时候就可以直接从源文件直接导出到Excel,具体该怎么导出呢?下面是我带来的关于网页数据导出excel的方法,希望阅读过后对你有所启发!  网页数据导出exc... 查看详情

怎样从数据库里把自己需要的数据导出到excel表格中?

SERVER、ACCESS、EXCEL数据转换,详细说明如下:一、SQLSERVER和ACCESS的数据导入导出常规的数据导入导出:使用DTS向导迁移你的Access数据到SQLServer,你可以使用这些步骤:  ○1在SQLSERVER企业管理器中的Tools(工具)菜单上,选择DataTr... 查看详情

在c#中,如何把datagridview中的数据导出到一个excel表中

本人想把窗体中DataGridview内的数据通过一按钮导出到一张Excel表中,但不知该怎么搞,哪位高手帮帮忙啊命名空间是什么呢,要下载第三方控件么,小弟愚笨还望哪位高手指点指点,谢谢!真是巧,我昨天刚刚做了这个publicboolExpor... 查看详情

怎么把excel转化成project

可以。将项目数据导出到ExcelMicrosoftProject备有多个内置报表,您可以利用这些内置报表向利益干系人显示各类项目数据,还可以将项目数据导出到Excel2013,以进行深度数据分析和创建可视报表。在Excel中,您可以创建数据透视表... 查看详情

asp.net导出excel具体单元格

...批量导出记录到Excel,我想实现把某一条记录的每个栏位的数据导出到固定格式的Excel的具体某个单元格,比如把某条记录的课别数据导出到Excel的sheet1的C5单元格?这个怎么实现?http://bbs.csdn.net/topics/360100465看下这个帖子,,,你... 查看详情

python-将数据表中数据导出到excel(代码片段)

...:写一个函数,随便输入一个表名,把这个表里面所有的数据,导出到excel里面思路:1、‘select*from%s‘,查出这个表所有的数据2、再把所有的数据写到excelxlwt‘‘‘importpymysql,hashlib,xlwtdefop_mysql(sql:str):mysql_info=‘host‘:‘XXX.XXX.XXX.... 查看详情