gridview中的数据导出到excel模板 gridview中的数据在页面中显示,点击按钮执行导出gridview中的数据到excel模板当中,具体导出过程该如何实现?望好心人帮忙,最好附实现代码!问题解决了,分数继续追加!不差分儿! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void ShowExcel(DataTable table) { DateTime start = DateTime.Now; Excel.Application app = new Excel.ApplicationClass(); app.Visible = false; app.DisplayInfoWindow = false; Excel.Workbooks books = app.Workbooks; Excel.Workbook book = books.Open(Server.MapPath("Template/Allowance.xls"), Missing.Value, true, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); Excel.Worksheet sheet = (Excel.Worksheet)book.Sheets[1]; DateTime end = DateTime.Now; try { int currentRow = 1; string[] data = new string[table.Columns.Count]; foreach (DataRow row in table.Rows) { for (int i = 0; i < row.ItemArray.Length; i++) { data[i] = row.ItemArray[i].ToString(); } currentRow++; sheet.Cells[currentRow, 1] = String.Join("|", data); Excel.Range range = (Excel.Range)sheet.Cells[currentRow, 1]; range.TextToColumns(Missing.Value, Excel.XlTextParsingType.xlDelimited, Excel.XlTextQualifier.xlTextQualifierNone, false, false, false, false, false, true, "|", Missing.Value, Missing.Value, Missing.Value, Missing.Value); ((Excel.Range)sheet.Cells[currentRow, 1]).AddComment(row.RowError); } sheet.UsedRange.Columns.AutoFit(); Excel.Borders borders = ((Excel.Borders)sheet.UsedRange.Borders); borders.LineStyle = Excel.XlLineStyle.xlContinuous; borders.Weight = Excel.XlBorderWeight.xlThin; ////凍結儲存格 //((Excel.Range)sheet.Cells[3, 4]).Select(); ((Excel.Range)sheet.Cells[2, 4]).Select(); app.ActiveWindow.FreezePanes = true; string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "_Allowance.xls"; book.SaveAs(Server.MapPath("Download/" + fileName), Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlExclusive, Excel.XlSaveConflictResolution.xlLocalSessionChanges, Missing.Value, Missing.Value, Missing.Value, Missing.Value); Response.Redirect("Download/" + fileName, false); } finally { book.Close(true, Missing.Value, Missing.Value); books.Close(); app.Quit(); foreach (System.Diagnostics.Process excelProcess in System.Diagnostics.Process.GetProcessesByName("EXCEL")) { if (excelProcess.StartTime > start && excelProcess.StartTime < end) { excelProcess.Kill(); } } } } protected void Btn_ExportClick(object sender, EventArgs e){string style = @"<style> .text { mso-number-format:\@; } </script> "; Response.ClearContent();Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");Response.ContentType = "application/excel";StringWriter sw = new StringWriter();HtmlTextWriter htw = new HtmlTextWriter(sw);gv.RenderControl(htw);Response.Write(style); Response.Write(sw.ToString());Response.End();}打开excel模板,赋值到单元格public override void VerifyRenderingInServerForm(Control control){} http://topic.csdn.net/u/20091126/14/70312853-b98a-4634-bc05-e13b50fa1b90.html protected void btExcel_Click(object sender, EventArgs e) { Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=FileName.xls"); Response.Charset = "gb2312"; Response.ContentEncoding = System.Text.Encoding.UTF7; //没有这一行,在Excel中的中文以乱码显示 Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); gvYearView.AllowPaging = false; BindgvYearView(0); gvYearView.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); gvYearView.AllowPaging = true; BindgvYearView(0); } public override void VerifyRenderingInServerForm(Control control) //虽然该函数没有函数体,但只有重载此函数程序才能正常运行 { } public void CreateExcel(DataSet ds, string typeid, string FileName) { HttpResponse resp; resp = Page.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName); string colHeaders = "", ls_item = ""; int i = 0; //定义表对象与行对像,同时用DataSet对其值进行初始化 DataTable dt = ds.Tables[0]; DataRow[] myRow = dt.Select(""); // typeid=="1"时导出为Excel格式文件;typeid=="2"时导出为XML格式文件 if (typeid == "1") { //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符 for (i = 0; i < dt.Columns.Count - 1; i++) { colHeaders += dt.Columns[i].Caption.ToString() + "\t"; //colHeaders +=dt.Columns[i].Caption.ToString() +"\n"; } colHeaders += dt.Columns[i].Caption.ToString() + "\n"; //向HTTP输出流中写入取得的数据信息 resp.Write(colHeaders); //逐行处理数据 foreach (DataRow row in myRow) { //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n for (i = 0; i < dt.Columns.Count - 1; i++) { ls_item += row[i].ToString() + "\t"; //ls_item += row[i].ToString() +"\n"; } ls_item += row[i].ToString() + "\n"; //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 resp.Write(ls_item); ls_item = ""; } } else { if (typeid == "2") { //从DataSet中直接导出XML数据并且写到HTTP输出流中 resp.Write(ds.GetXml()); } } //写缓冲区中的数据到HTTP头文件中 resp.End(); } Response.Clear(); Response.Buffer = true; Response.Charset = "GB2312"; Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls")); //Response.ContentEncoding = System.Text.Encoding.GetEncoding("Unicode"); Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); Response.ContentType = "application/ms-excel"; this.EnableViewState = false; System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); ///test.Columns[0].Visible = false; test.RenderControl(oHtmlTextWriter); Response.Output.Write(oStringWriter.ToString()); Response.Flush(); Response.End(); public void dy() { Response.ClearContent(); Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls"); Response.ContentType = "application/excel"; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); GridView1.RenderControl(htw); Response.Write(sw.ToString()); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { } protected void Button1_Click(object sender, EventArgs e) { dy(); } treeView getTreeNode("0"); 出现“对象不支持此属性或方法” asp.net从localhost下载文件问题 如何自定义控件中定义选择文件的属性 [ASP.NET代码]ASP.NET程序中常用的三十三种代码 老掉牙的问题:Global.asax定时执行 如何屏蔽掉按钮的onclick事件?(js也有犯难的时候) asp复选框传值问题 可否使用ASP.NET读取远程网页的内容? 哪位大哥给提供一个生成静态页的模板啊 asp.net入门,指点即有分 各位大哥,问个关于CKeditor编辑器的问题? 问个页面重复内容!关于想主动引发404错误的问题
{
DateTime start = DateTime.Now;
Excel.Application app = new Excel.ApplicationClass();
app.Visible = false;
app.DisplayInfoWindow = false;
Excel.Workbooks books = app.Workbooks;
Excel.Workbook book = books.Open(Server.MapPath("Template/Allowance.xls"), Missing.Value, true, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value);
Excel.Worksheet sheet = (Excel.Worksheet)book.Sheets[1]; DateTime end = DateTime.Now; try
{
int currentRow = 1;
string[] data = new string[table.Columns.Count];
foreach (DataRow row in table.Rows)
{
for (int i = 0; i < row.ItemArray.Length; i++)
{
data[i] = row.ItemArray[i].ToString();
}
currentRow++; sheet.Cells[currentRow, 1] = String.Join("|", data);
Excel.Range range = (Excel.Range)sheet.Cells[currentRow, 1];
range.TextToColumns(Missing.Value, Excel.XlTextParsingType.xlDelimited, Excel.XlTextQualifier.xlTextQualifierNone,
false, false, false, false, false, true, "|", Missing.Value, Missing.Value, Missing.Value, Missing.Value);
((Excel.Range)sheet.Cells[currentRow, 1]).AddComment(row.RowError); } sheet.UsedRange.Columns.AutoFit();
Excel.Borders borders = ((Excel.Borders)sheet.UsedRange.Borders);
borders.LineStyle = Excel.XlLineStyle.xlContinuous;
borders.Weight = Excel.XlBorderWeight.xlThin;
////凍結儲存格
//((Excel.Range)sheet.Cells[3, 4]).Select();
((Excel.Range)sheet.Cells[2, 4]).Select();
app.ActiveWindow.FreezePanes = true; string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "_Allowance.xls";
book.SaveAs(Server.MapPath("Download/" + fileName), Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlExclusive, Excel.XlSaveConflictResolution.xlLocalSessionChanges,
Missing.Value, Missing.Value, Missing.Value, Missing.Value);
Response.Redirect("Download/" + fileName, false);
}
finally
{
book.Close(true, Missing.Value, Missing.Value);
books.Close();
app.Quit();
foreach (System.Diagnostics.Process excelProcess in System.Diagnostics.Process.GetProcessesByName("EXCEL"))
{
if (excelProcess.StartTime > start && excelProcess.StartTime < end)
{
excelProcess.Kill();
}
}
}
}
string style = @"<style> .text { mso-number-format:\@; } </script> ";
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
Response.Write(style);
Response.Write(sw.ToString());
Response.End();
}
打开excel模板,赋值到单元格
public override void VerifyRenderingInServerForm(Control control)
{
}
protected void btExcel_Click(object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls"); Response.Charset = "gb2312";
Response.ContentEncoding = System.Text.Encoding.UTF7; //没有这一行,在Excel中的中文以乱码显示
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite =
new HtmlTextWriter(stringWrite);
gvYearView.AllowPaging = false;
BindgvYearView(0);
gvYearView.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); gvYearView.AllowPaging = true;
BindgvYearView(0);
}
public override void VerifyRenderingInServerForm(Control control) //虽然该函数没有函数体,但只有重载此函数程序才能正常运行
{ }
public void CreateExcel(DataSet ds, string typeid, string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
string colHeaders = "", ls_item = "";
int i = 0; //定义表对象与行对像,同时用DataSet对其值进行初始化
DataTable dt = ds.Tables[0];
DataRow[] myRow = dt.Select("");
// typeid=="1"时导出为Excel格式文件;typeid=="2"时导出为XML格式文件
if (typeid == "1")
{
//取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
for (i = 0; i < dt.Columns.Count - 1; i++)
{
colHeaders += dt.Columns[i].Caption.ToString() + "\t";
//colHeaders +=dt.Columns[i].Caption.ToString() +"\n";
}
colHeaders += dt.Columns[i].Caption.ToString() + "\n";
//向HTTP输出流中写入取得的数据信息
resp.Write(colHeaders);
//逐行处理数据
foreach (DataRow row in myRow)
{
//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
for (i = 0; i < dt.Columns.Count - 1; i++)
{
ls_item += row[i].ToString() + "\t";
//ls_item += row[i].ToString() +"\n";
}
ls_item += row[i].ToString() + "\n";
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item = "";
}
}
else
{
if (typeid == "2")
{
//从DataSet中直接导出XML数据并且写到HTTP输出流中
resp.Write(ds.GetXml());
}
}
//写缓冲区中的数据到HTTP头文件中
resp.End();
}
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls"));
//Response.ContentEncoding = System.Text.Encoding.GetEncoding("Unicode");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
///test.Columns[0].Visible = false;
test.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
{
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
} protected void Button1_Click(object sender, EventArgs e)
{
dy();
}