gridview与gridlayout,gridview导出excel去掉表头
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!
(一)首先创建Excel文档:
在实现gridview导出excel的前提下,我们再利用Excel对象可以简单的操作Excel文档,从而实现gridview导出Excel文件。此操作可以利用Microsoft.Office.Interop.Excel命名空间及其全部方法,所以说首先要创建Excel文档,用下面的语句可以创建Excel文档:
Excel.Application xlApp = new Excel.Application(); // 创建Excel文档
(二)编写核心代码
1. 使GridView数据可用于Excel:
创建一定规格的Excel文档后,我们可以使用xlSheet = (Excel.Worksheet)xlApp.Worksheets.Add()来把GridView的数据显示在该文档中。
2. 遍历GridView:
首先可以先遍历GridView中的数据,用for循环以及两个变量i,j分别表示了变量的行和列,然后可以把GridView中的数据存放在一个object数组中,当返回结果为False时,停止循环:
for (i = 0; i <= gridView.Rows.Count; i++)
{
for (j = 0; j < gridView.Columns.Count; j++)
{
str[i, j] = gridView.Rows[i].Cells[j].Text.ToString();
}
}
(三)将GridView数据添加到Excel文档中
如果GridView中的数据存放在object数据中,则将其写入Excel文档中,用下面的语句:
xlSheet.get_Range(xlApp.Cells[rowIndex + 1,columnIndex],xlApp.Cells[rowIndex + 1,columnIndex]).Value2 = values[rowIndex,columnIndex];
(四)保存打开的文件
编写完上面的代码后,就可以用xlApp.ActiveWorkbook.SaveAs(Path, Excel.XlFileFormat.xlWorkbookNormal)来保存文档。
(五)将Excel调用至当前页面
当生成Excel文档后,还需要把Excel文档显示在网页页面上,这是需要在Response.AppendHeader中添加一个键来下载,可以使用如下代码:
Response.AppendHeader(\"Content-disposition\",\"attachment;filename=Export.xls\");
Response.ContentType = \"application/vnd.xls\";
Response.WriteFile(Path);
(六)释放内存
最后还需要记得释放内存,即在程序结束的时候,用xlApp.Quit()来终止进程,使用Marshal.ReleaseComObject()来释放内存:
Marshal.ReleaseComObject(xlApp);
Marshal.ReleaseComObject(xlSheet);
xlSheet = null;
xlApp = null;
GC.Collect(); // 垃圾回收
1.\tGridView介绍:GridView是ASP.NET中提供的一个用来显示表格式数据的控件。它可以用来在Web页面中显示数据库查询传递的数据,同时支持多种操作,包括排序、分页、搜索等,而且对对数据的编辑、更新、删除等操作均提供了友好的界面与良好的用户见解。
2.\tGridView实现导出Excel:要实现GridView导出Excel,就需要通过将GridView中每行每列数据生成Excel文件(.xls文件)来实现。
(1)首先,在GridView控件上添加一个Button控件用来实现导出Excel的功能,并设置Button的ID和PostBackUrl属性;
(2)然后在后台加入一个导出方法:
public void ExportToExcel(DataTable dtSource, string strHeaderText, string strFileName, string[] columnsArray锛孶)
{
//设置表头
string sHeader = GridView_Excel.GetExcelHeaderColumn(dtSource, strHeaderText, columnsArray);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset = \"GB2312\";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.AddHeader(\"Content-Disposition\", \"attachment; filename=\" + strFileName);
HttpContext.Current.Response.ContentType = \"application/ms-excel\";
HttpContext.Current.Response.Write(sHeader);
//输出Excel数据
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView_Excel.RenderDataTable(dtSource, columnsArray, htw);
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
}
(3)接下来就是从GridView中获取数据,并设置表头,将GridView中的数据转换为excel格式:
public static string GetExcelHeaderColumn(DataTable dtSource, string strHeaderText, string[] columnsArray)
{
//设置表头
StringBuilder sbHeader = new StringBuilder();
sbHeader.Append(\"\");
sbHeader.Append(strHeaderText + \"\");
//设置表的字段名
sbHeader.Append(\"\");
foreach(string column in columnsArray)
{
sbHeader.Append(\"\" + dtSource.Columns[column].ColumnName + \"\");
}
sbHeader.Append(\"\");
return sbHeader.ToString();
}
(4)最后调用RenderDataTable方法:
public static void RenderDataTable(DataTable dtSource, string[] columnsArray, HtmlTextWriter htw)
{
//生成Excel数据
if (dtSource == null || columnsArray == null)
{
throw new Exception(\"DataTable或者ColumnsArray不能为空!\");
}
int rowIdx = 0;
foreach (DataRow row in dtSource.Rows)
{
rowIdx++;
//输出每行数据
htw.Write(\"\");
//foreach (DataColumn col in dtSource.Columns)
foreach(string column in columnsArray)
{
htw.Write(\"\");
htw.Write(row[column].ToString());
htw.Write(\"\");
}
htw.Write(\"\");
}
htw.Write(\"\");
}
3.\tGridView导出Excel的优缺点:
优点:
(1)GridView导出Excel的目的是快速生成Excel文件,从而节约时间和精力,从而解决数据存储和解析比较复杂且耗费时间的问题;
(2)GridView导出Excel方便管理系统中数据的快捷检索以及实现数据一致性;
(3)GridView导出Excel能帮助管理系统提高工作效率,节省人力资源;
缺点:
(1)GridView导出Excel不是实时数据,而是历史数据;
(2)GridView导出Excel无法在线预览,需要等待文件下载后才能对文件数据展示和检索;
(3)GridView导出Excel只能实现简单的数据操作,没有可视化操作界面,需要编写复杂的代码。
wWw.Xtw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com