一般来说,都是在程序里面根据上一次的查询条件,再查一次,然后组装成Excel。如何导入数据至Excel文件 C#.net
解决方案 »
- ie6下 下载pdf文件时 文件名不对 。ie7 是好的。也可能是iis问题,因为本地空间是好的。
- 读取表中的数据,生成字符串
- 关于用户控件DIV的ID问题
- 大家帮忙看一下,读取.txt文件运行出现下面的乱码? 怎么弄?
- 后台登录一直提示密码不正确
- 在客户端单击一个button或者链接就可以打开服务器上的共享文件夹,效果和在浏览器中打入\\server\share的效果一样,如何实现?
- using (proxy as IDisposable) 求解释,什么意思
- 关于传参
- asp.net 2.0控件跟数据绑定问题
- 去除页面缓存的问题?
- asp.net运行环境求解
- DateTime.ToFileTime()后的转换问题
http://www.cnblogs.com/zhangliyu/archive/2009/07/07/1518763.html
{
gvMoneyLog.AllowPaging = false;
DataSet ds =这里是你获取一个DataSet数据集;
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Text.StringBuilder builder = new System.Text.StringBuilder();
sw.WriteLine("记录时间,角色名称");//这里是要显示的标头名称,用逗号分割
foreach (DataRow dr in ds.Tables[0].Rows)
{
builder = new System.Text.StringBuilder();
builder.Append(dr["logtime"].ToString());
builder.Append(",");
builder.Append(dr["charguid"].ToString());
....
....
....
sw.WriteLine(builder.ToString());
}
sw.Close();
string filename = Server.UrlPathEncode(DateTime.Now.ToString().Replace(" ", "").Replace("-", "").Replace(":", "") + ".csv");
Response.Buffer = false;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename);
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";
EnableViewState = false;
Response.Write(sw);
Response.End();
}
也可以将数据导出EXCEL
/// <summary>
/// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流
/// </summary>
/// <param name="dtData">要导出的数据源</param>
public static void DataTable1Excel(System.Data.DataTable dtData)
{
System.Web.UI.WebControls.GridView gvExport = null;
// 当前对话
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.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
curContext.Response.Charset = "utf-8"; // 导出excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
// 为了解决gvData中可能进行了分页的情况,需要重新定义一个无分页的GridView
gvExport = new System.Web.UI.WebControls.GridView();
gvExport.DataSource = dtData.DefaultView;
gvExport.AllowPaging = false;
gvExport.DataBind(); // 返回客户端
gvExport.RenderControl(htmlWriter);
curContext.Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />" + strWriter.ToString());
curContext.Response.End();
}
}
/// <summary>
/// 直接输出Excel
/// </summary>
/// <param name="dtData"></param>
public static void DataTable2Excel(System.Data.DataTable dtData)
{
System.Web.UI.WebControls.DataGrid dgExport = null;
// 当前对话
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.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding =System.Text.Encoding.UTF8;
curContext.Response.Charset = "";
// 导出excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
dgExport = new System.Web.UI.WebControls.DataGrid();
dgExport.DataSource = dtData.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind(); // 返回客户端
dgExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}
protected void btnExcel_Click(object sender, EventArgs e)
{
Export("application/ms-excel", "工资表.xls");
}
private void Export(string FileType, string FileName)
{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = "application / excel";
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw); this.GridView1.Columns[0].Visible = false;
this.GridView1.Columns[1].Visible = false;
this.GridView1.Columns[3].Visible = false;
this.GridView1.Columns[4].Visible = false;
this.GridView1.Columns[5].Visible = false;
this.GridView1.Columns[6].Visible = false; GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End(); this.GridView1.Columns[0].Visible = false;
this.GridView1.Columns[1].Visible = false;
this.GridView1.Columns[3].Visible = false;
this.GridView1.Columns[4].Visible = false;
this.GridView1.Columns[5].Visible = false;
this.GridView1.Columns[6].Visible = false;
} public override void VerifyRenderingInServerForm(Control control)
{ }
/// <summary>
/// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流
/// </summary>
/// <param name="dtData">要导出的数据源</param>
public static void DataTable1Excel(System.Data.DataTable dtData)
{
System.Web.UI.WebControls.GridView gvExport = null;
// 当前对话
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.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
curContext.Response.Charset = "utf-8"; // 导出excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
// 为了解决gvData中可能进行了分页的情况,需要重新定义一个无分页的GridView
gvExport = new System.Web.UI.WebControls.GridView();
gvExport.DataSource = dtData.DefaultView;
gvExport.AllowPaging = false;
gvExport.DataBind(); // 返回客户端
gvExport.RenderControl(htmlWriter);
curContext.Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />" + strWriter.ToString());
curContext.Response.End();
}
}
c#导出Excel