首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#中datagridview数据导出到excel中,该怎么处理

2011-12-26 
c#中datagridview数据导出到excel中是关于winform的,代码越详细越好。[解决办法]private void button5_Clic

c#中datagridview数据导出到excel中
是关于winform的,代码越详细越好。

[解决办法]
private void button5_Click_1(object sender, EventArgs e)
{
//建立Excel对象
Excel.Application excel = new Excel.Application();
excel.Application.Workbooks.Add(true);
//生成字段名称
for (int i = 0; i < dataGridView2.ColumnCount; i++)
{
excel.Cells[1,i + 1] = dataGridView2.Columns[i].HeaderText;
if (y == 0)
{
y = 1;
toolStripStatusLabel6.Text = "数据导入中,请等待!";
}
}
//填充数据
for (int i = 0; i < dataGridView2.RowCount - 1; i++)
{
for (int j = 0; j < dataGridView2.ColumnCount; j++)
{
if (dataGridView2[j, i].Value == typeof(string))
{
excel.Cells[i + 2, j + 1] = "" + dataGridView2[i, j].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] = dataGridView2[j, i].Value.ToString();
}
}
}
excel.Visible = true;
}

这都有很多人问过的了,你还问?
[解决办法]
[原创]万能,高效-C#导出数据到Excel2008年03月18日 星期二 下午 12:56 class CommanPrint
{
/// <summary>
/// 导出Excel 

/// 版权所有 : 天山寒雪 QQ:757015000 MSN: haijun.qin@hotmail.com

/// </summary>
/// <param name="mydgv">控件 DataGridView</param>
/// <param name="dic">中英文对照的标题</param>
public static void ExportTasks(DataGridView mydgv, Dictionary<string, string> dic)
{
// 定义要使用的Excel 组件接口
// 定义Application 对象,此对象表示整个Excel 程序
Microsoft.Office.Interop.Excel.Application excelApp = null;
// 定义Workbook对象,此对象代表工作薄
Microsoft.Office.Interop.Excel.Workbook workBook;
// 定义Worksheet 对象,此对象表示Execel 中的一张工作表
Microsoft.Office.Interop.Excel.Worksheet ws = null;
//定义Range对象,此对象代表单元格区域
Microsoft.Office.Interop.Excel.Range range;

int dcell = 1;
int rowindex = 0; int colindex = 0;

int rowcount = mydgv.Rows.Count;
int colcount = mydgv.Columns.Count;
int dispcolcount = dic.Count;
try
{
//初始化 Application 对象 excelApp
excelApp = new Microsoft.Office.Interop.Excel.Application();
//在工作薄的第一个工作表上创建任务列表
workBook = excelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
ws = (Worksheet)workBook.Worksheets[1];

// 命名工作表的名称为
ws.Name = "Sheet1";
//创建缓存
Object[,] objdata = new object[rowcount + 1, colcount];
//创建标题
foreach (string s in dic.Keys)
{
objdata[rowindex, colindex++] = dic[s].ToString();
}
//获取数据
for (int i = 0; i < rowcount; i++)
{
dcell = 0;
foreach (string ss in dic.Keys)
{
for (int j = 0; j < colcount; j++)
{
if (mydgv.Columns[j].Name == ss)
{
objdata[i + 1, dcell++] = mydgv.Rows[i].Cells[j].FormattedValue.ToString(); //得到样式之后的值


}
}
}
}
//写入Excel
range = ws.get_Range(excelApp.Cells[1, 1], excelApp.Cells[rowcount, dispcolcount]);
range.Value2 = objdata;
System.Windows.Forms.Application.DoEvents();
//设置格式
excelApp.Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlLeft; //全局左对齐
excelApp.Cells.EntireColumn.AutoFit();
range = ws.get_Range(excelApp.Cells[1, 1], excelApp.Cells[1, colcount]);
range.Font.Bold = true; //标题粗体
//显示 Excel
excelApp.Visible = true;

}
catch (Exception ex)
{
throw ex;
}

 

[解决办法]

C# code
using System;using System.Collections.Generic;using System.Text;using System.Web.UI.WebControls;using System.Data;using System.Web.UI.HtmlControls;namespace Common{    public class ExcelHelper    {        // Excel导出        public static void Export(GridView dgExport, DataTable dtData)        {            System.Web.HttpContext curContext = System.Web.HttpContext.Current;            // IO用于导出并返回excel文件             System.IO.StringWriter strWriter = null;            System.Web.UI.HtmlTextWriter htmlWriter = null;            if (dtData != null)            {                // 设置编码和附件格式                 curContext.Response.Clear();                curContext.Response.ClearContent();                curContext.Response.Buffer = true;                curContext.Response.ContentType = "application/vnd.ms-excel";                curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-7");                 curContext.Response.Charset = "GB2312";                curContext.Response.AppendHeader("content-disposition", "filename=\"" + System.Web.HttpUtility.UrlEncode(dtData.TableName, System.Text.Encoding.UTF8) + ".xls\"");                // 导出excel文件                 strWriter = new System.IO.StringWriter();                htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);                HtmlForm frm = new HtmlForm();                frm.Attributes["runat"] = "server";                frm.Controls.Add(dgExport);                dgExport.DataSource = dtData.DefaultView;                dgExport.DataBind();                // 返回客户端                 dgExport.RenderControl(htmlWriter);                curContext.Response.Write(strWriter.ToString());                curContext.Response.End();            }        }    }} 

热点排行