dev中的gridview导出excel文件

源代码:

private void ExportExcel(string fileName, DevExpress.XtraGrid.Views.Grid.GridView myDGV)

{

string saveFileName = "";

SaveFileDialog saveDialog = new SaveFileDialog();

saveDialog.DefaultExt = "xlsx";

saveDialog.Filter = "Excel文件|*.xlsx";

saveDialog.FileName = fileName;

saveDialog.ShowDialog();

saveFileName = saveDialog.FileName;

if (saveFileName.IndexOf(":") < 0) return; //被点了取消

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

if (xlApp == null)

{

MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");

return;

}

Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;

Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);

Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1

int j = 0;//筛选掉隐藏的列

//写入标题

for (int i = 0; i < myDGV.Columns.Count; i++)

{

//myDGV.Columns[i].HeaderText;

if (myDGV.Columns[i].Visible == true)

{

worksheet.Cells[1, j + 1] = myDGV.Columns[i].Caption;

j++;

}

}

//写入数值

for (int r = 0; r < myDGV.RowCount; r++)

{

int k = 0;//筛选掉隐藏的列

for (int i = 0; i < myDGV.Columns.Count; i++)

{

if (myDGV.Columns[i].Visible == true)

{

worksheet.Cells[r + 2, k + 1] = myDGV.GetRowCellValue(r, myDGV.Columns[i]);

k++;

}

}

System.Windows.Forms.Application.DoEvents();

}

worksheet.Columns.EntireColumn.AutoFit();//列宽自适应

if (saveFileName != "")

{

try

{

workbook.Saved = true;

workbook.SaveCopyAs(saveFileName);

}

catch (Exception ex)

{

MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);

}

}

xlApp.Quit();

GC.Collect();//强行销毁

MyCommon.ShowMessageBox(this, fileName + ".xlsx 导出成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

//导出按钮事件

private void button3_Click(object sender, EventArgs e)

{

//第一个是名称,第二个是gridview

ExportExcel("测试", gridView1);

}

需要注意的是:在导出中gridview中的列要按顺序排列出来,要和前台显示保持一致,这里增加了隐藏列的方法,可以将隐藏的列筛选出来,office中2010以下的版本需要修改

saveDialog.DefaultExt = "xls";

saveDialog.Filter = "Excel文件|*.xls";

以上的版本就不用修改了,动态创建出来了;

时间: 2024-10-11 09:11:12

dev中的gridview导出excel文件的相关文章

Yii框架中使用PHPExcel导出Excel文件

最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法: 1.首先在config\main.php中添加对PHPExcel的引用,我的方式是这样: 1 2 3 4 5 6 7 8 // autoloading model and component classes     'import'=>array(                  'application.models.*',         'application.components.*',

Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下: 解决方案: [java] view plain copy Date dt=new Date();//如果不需要格式,可直接用dt,dt就是当前系统时间 DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//设置显示格

asp.net 导出excel文件

之前做过winfrom程序的导出excel文件的功能,感觉非常简单.现在试着做asp.net中导出excel的功能,之前用的是Microsoft.Office.Interop.Excel这个对象来实现数据导出excel,在asp.net上完全被它给恶心到了.首先是不能弹出保存对话框,然后又是在代码执行到Microsoft.Office.Interop.Excel.Application myexcel = new Microsoft.Office.Interop.Excel.Applicatio

IE下GridView导出Excel无反应

使用GridView导出Excel的方法把GridView中的内容导出为Excel: /// <summary> /// 将网格数据导出到Excel /// </summary> /// <param name="ctrl">网格名称(如GridView1)</param> /// <param name="FileType">要导出的文件类型(Excel:application/ms-excel)<

扩展GridView导出Excel功能

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Runtime.CompilerServices;using System.Text;using System.Web;using System.Web.Compilation;using System.Web.UI;using System.Web.UI.WebControls; namespace Web{ 

PHP从数据库导出EXCEL文件

参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-type: text/html; charset=utf-8');header("Content-type:application/vnd.ms-excel");header("Content-Disposition:filename=test.xls"); $conn =

使用Open Xml按模版导出Excel文件(下)

(3)将数据写入Excel 把数据写入到Excel文件是本文的关键技术.这里需要用到OpenXml.在Sdk里已经提供了足够的文件操作方法,我们就调用这些方法,将数据源的数据写到文件中. 首先我们定义了一些工具类,用于读取单元格的行列值. 在Excel中,每个单元格都有一个地址:如B3表示第二行第三列的格子,在Utility中的GetRowIndex和GetColumnIndex就是输入字符串”B3”,返回Int类型的索引2 和3.还有输入“B3”,返回列的字母“B”等等. 在WorkSheet

PHP导出excel文件,第一步先实现PHP模板导出不带数据

今天继续研究PHP导出excel文件,把复杂的事情简单化,一步步实现功能,首先实现模板文件的导出,随后再实现写入数据后导出,最终实现功能,这是基本思路.中间可以加一步,先自己写入数据导出试试,随后再数据库导入.我首先把程序提交到自建的eubexcel.php文件,选用post提交,导出excel文件的程序在这个页面里书写,参考昨天下载的PHPExcel-1.8组件里的参考文档,先部署导出excel,具体代码如下 <?php error_reporting(E_ALL);ini_set('disp

使用Open Xml按模版导出Excel文件(上)

完整内容请参见我的网站 http://www.iyummy.com.cn/Blog/Detail/3 我们在做应用系统中经常需要将数据库中的数据导出成为Excel文件.如果是要导出报表的话,最好是能够根据定义好的模版生成一个美观的Excel. 以前要生成有样式的Excel.一般是使用Xml形式的Excel修改,或者使用Excel的Api.前者要修改样式的话特别麻烦,后者在Asp.net里会起很多进程. 庆幸的是从office 2007开始,微软使用了OpenXml来定义office的文件.使用r