作者:乔山办公网日期:
返回目录:excel表格制作
先引用
先引用
using System.Security;
using System.Text;
using Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Configuration;
直接导出方法1.
public override void VerifyRenderingInServerForm(Control control)//导出Excel必须加整个不然会报e799bee5baa6e79fa5e98193e4b893e5b19e335错
{
}
protected void Button2_Click(object sender, EventArgs e)
{
GV1.Visible = true;
string filename = "SendMailHistory";
Response.Clear();
Response.Buffer = true;
Response.Charset = "UTF-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
Response.ContentType = "application/vnd.ms-excel; charset=UTF-8";
EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
GV1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
方法2用模版
protected void Button4_Click(object sender, EventArgs e)
{
string save_path = "", tick = "";
ExcelOperate excelOperate = new ExcelOperate();
string temp_path = Server.MapPath("~/DownLoad/Report");//生成的文件存放路径
string loadfilename=Server.MapPath("~/DownLoad/Report/SendMailHistory.xlsx");
string template_path = Server.MapPath("~/designer");//模板路径
if (!Directory.Exists(temp_path))
{
Directory.CreateDirectory(temp_path);
Directory.CreateDirectory(template_path);
}
try
{
if (File.Exists(loadfilename))
{
File.Delete(loadfilename);
}
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
if (app == null)
{
}
app.Visible = false;
app.UserControl = true;
Workbooks workbooks = app.Workbooks;
_Workbook workbook = workbooks.Add(template_path + "\\sendmailhistory.xlsx");
Sheets sheets = workbook.Worksheets;
_Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
if (worksheet == null)
{
}
//======数据写入excel
int rowNum = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
rowNum = i + 1;
worksheet.Cells[6 + i, 1] = rowNum;
worksheet.Cells[6 + i, 2] = dt.Rows[i]["wtemp"].ToString();
worksheet.Cells[6 + i, 3] = dt.Rows[i]["YP_FormBG_ID"].ToString();
worksheet.Cells[6 + i, 4] = dt.Rows[i]["PartNO"].ToString();
worksheet.Cells[6 + i, 5] = dt.Rows[i]["ModelName"].ToString();
worksheet.Cells[6 + i, 6] = dt.Rows[i]["SendUser"].ToString();
// worksheet.get_Range(worksheet.Cells[14 + i, 7], worksheet.Cells[14 + i, 8]).Merge(); //合并单元格
worksheet.Cells[6 + i, 7] = dt.Rows[i]["SendDate"].ToString();
worksheet.Cells[6 + i, 8] = dt.Rows[i]["Mark1"].ToString();
worksheet.get_Range(worksheet.Cells[6 + i, 1], worksheet.Cells[6 + i, 8]).Borders.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black);
worksheet.get_Range(worksheet.Cells[6 + i, 1], worksheet.Cells[6 + i, 8]).Borders.LineStyle = XlLineStyle.xlContinuous;
}
worksheet.Cells[rowNum + 6 + 1, 3] = "编制:";//worksheet.Cells[rowNum +6 +1, 3]
worksheet.Cells[rowNum + 6 + 1, 5] = "审批:";
worksheet.Cells[rowNum + 6 + 1, 7] = "WL4E300002_AE";
worksheet.get_Range(worksheet.Cells[rowNum + 6 + 1, 7], worksheet.Cells[rowNum + 6 + 1, 8]).Merge(); //合并单元格
tick = DateTime.Now.Ticks.ToString();
save_path = loadfilename;
workbook.SaveAs(save_path, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
excelOperate.Dispose(worksheet, workbook, app);//关闭Excel进程
labmsg.Text = "导出Excel成功";
Response.Redirect("~/DownLoad/Report/SendMailHistory.xlsx");
}
catch (Exception ex)
{
labmsg.Text = "";
labmsg.ForeColor = Color.Red;
Response.Redirect("~/DownLoad/Report/SendMailHistory.xlsx");
// s = false;
}
}
用我这段e799bee5baa6e79fa5e98193e59b9ee7ad94330,我一直在用
protected void Button8_Click(object sender, EventArgs e)
{
GridView2.Visible = true;
string filename = "QueryData";
Response.Clear();
Response.Buffer = true;
Response.Charset = "UTF-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
Response.ContentType = "application/vnd.ms-excel; charset=UTF-8";
EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
GridView2.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
Page page = new Page();
HtmlForm form = new HtmlForm();
GridView1.EnableViewState = false;
page.EnableEventValidation = false;
page.DesignerInitialize();
page.Controls.Add(form);
form.Controls.Add(GridView1);
page.RenderControl(htw);
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application nd.ms-excel";
string name = "Keyword_Report-" + System.DateTime.Now.ToShortDateString();
Response.AddHeader("Content-Disposition", "attachment;filename=" + name + ".xls");
Response.Charset = "gb2312";
Response.ContentEncoding = Encoding.UTF8;
Response.Write(sb.ToString());
Response.End();
我测7a686964616fe78988e69d83365试过 可以用
绑定数据后
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Charset = "GB2312";
// System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头e799bee5baa6e79fa5e98193e4b893e5b19e339信息,为"文件下载/另存为"对话框指定默认文件名
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=myU.xls");
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
// System.Web.HttpContext.Current.Response.AddHeader("Content-Length",sb.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
System.Web.HttpContext.Current.Response.Write(sb.ToString());
// 停止页面的执行
System.Web.HttpContext.Current.Response.End();