repeater嵌套repeater 导出成Excel

zhuxiangshengwww 2010-10-12 06:01:04
如图所示



导出成excel,本人会导的都是一个datatable,这下不知道如何都导出来了,有做过的高人指点一下了,谢谢!
...全文
287 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamfly_cc 2012-09-06
  • 打赏
  • 举报
回复



protected void Btn_OutEXL_Click(object sender, EventArgs e)
{
DataBind_Infor();
string strDate1 = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss");
base.Response.Clear();
base.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
base.Response.AddHeader("content-disposition", "attachment;filename=工资统计表(" + strDate1.ToString() + ").xlsx");
base.Response.Charset = "gb2312";//gb2312,utf-8,UTF7
//base.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//Response.ContentType指定文件类型 可以为application/ms-excel、application/ms-word、application/ms-txt、application/ms-html 或其他浏览器可直接支持文档
base.Response.ContentType = "application/vnd.xls";
this.EnableViewState = false;
// 定义一个输入流
StringWriter writer = new StringWriter();
HtmlTextWriter Htmlwriter = new HtmlTextWriter(writer);
this.Rpt_Makes.RenderControl(Htmlwriter);
//this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件
base.Response.Write(writer.ToString());
base.Response.End();
}


Study_Now 2010-10-13
  • 打赏
  • 举报
回复
导出EXCEL老出现乱码,不知道楼主遇到过没
果然如此 2010-10-12
  • 打赏
  • 举报
回复
方法1:用office组件生产excel,
//此代码基于vs2005下的vsto2005平台下的部分代码。

private void DataBind()
{
dbname = @"C:\Documents and Settings\xiangx\桌面\MTshapeUp.mdb";
string Dbname = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + dbname;
OleDbConnection con = new OleDbConnection(Dbname);
OleDbCommand com = new OleDbCommand("select * from T_MT_INFO_RULE");
try
{
con.Open();
com.CommandType = CommandType.Text;
com.Connection = con;
OleDbDataAdapter da = new OleDbDataAdapter(com);
ds = new DataSet("Test");


da.Fill(ds);
}
catch
{

}
finally
{
con.Close();
}
DataTable dt = ds.Tables[0];

Excel.Worksheet ws = (Excel.Worksheet)Application.ActiveSheet;
Excel.Range rng = ws.get_Range("A2","E3");

string [,]datasource = Tabletoarrays(dt);

//使用二维数组对这个范围进行简单赋值。

rng.Value2 = datasource;

Application.DisplayAlerts = false;


GC.Collect();


}

private string[,] Tabletoarrays(DataTable dt)
{
int tablerows = dt.Rows.Count;
int tablecols = dt.Columns.Count;
string[,] Arrays = new string[tablerows, tablecols];
for (int i = 0; i < tablerows; i++)
{
for (int j = 0; j < tablecols; j++)
{
Arrays[i, j] = Convert.ToString(dt.Rows[i][j]);
}
}
return Arrays;
}

这个value指示的是简单邦定,还有对于Datasourse的复杂绑定,将在以后介绍。



------------------------


方法2:生成txt文本,用逗号分隔的格式化文本,做为cvs文件

zhuxiangshengwww 2010-10-12
  • 打赏
  • 举报
回复
大家帮忙想想啊
zhuxiangshengwww 2010-10-12
  • 打赏
  • 举报
回复
导出成Excel文件,因为是repeater里面嵌套repeater,要导出的excel文件跟如图所示的格式差不多,楼上的说的我都试过了,都没达到要求,都不能导出我所要的
wuyq11 2010-10-12
  • 打赏
  • 举报
回复
打开EXCEL模板导出excel
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
rpt.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
Arthur080319 2010-10-12
  • 打赏
  • 举报
回复
调用的时候 Export("application/ms-excel", "XXXXX.xls");
Arthur080319 2010-10-12
  • 打赏
  • 举报
回复
//列表输出
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 = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
rpList.RenderControl(hw); //repeater
Response.Write(tw.ToString());
Response.End();
}

public override void VerifyRenderingInServerForm(Control control)
{
}
shaoliang520xi 2010-10-12
  • 打赏
  • 举报
回复
/// <summary>
/// 将DataTable 导出为EXCEL,并直接提供下载
/// </summary>
/// <param name="ds">需要导处的DataTable</param>
/// <param name="fileName">到处生成的文件名</param>
///
public bool ExportExcelByDataTable(DataTable dt, string fileName)
{
try
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset = "utf-7";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-7");

HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
StringWriter stringWrite = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
DataGrid dg = new DataGrid();
dg.HeaderStyle.CssClass = "dgHead";
dg.DataSource = dt;
dg.DataBind();
dg.RenderControl(htmlWrite);
// GridView gv = new GridView();
// gv.HeaderStyle.CssClass = "gvHead";
// gv.DataSource = dt;
// gv.DataBind();
// gv.RenderControl(htmlWrite);
HttpContext.Current.Response.Write(stringWrite.ToString());
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls");
HttpContext.Current.Response.Charset = "gb2312";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
HttpContext.Current.Response.End();
return true;
}
catch
{
return false;
}
}

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧