100分急!!!!!!求将网页上的htmltable导出到Excel
我在网上找了好多的导出到Excel中js代码,都是需要使用ActiveXObject的,但要使用ActiveXObject,就必须要更改ie中的安全设置.那样客户是不允许的.
还有,我现在做的东西,有好多的东西都不是用数据邦定控件生成的htmltable的.所以,不能用api那么导excel.
还有,我现在做的东西,有好多的页都要求有导出功能,所以只能将页面导出到excel中,不然的我每个业务,就点去画到excel中了.
还有,不想用服务端来实现.
求解决办法! --------------------编程问答-------------------- 我问你是要到处exce文件还是网页啊
要是网页你可以用excel生成一个空的网页
然后把数据填充上去
————
新建excel另存为web,吧他的格式复制下来就行了
下面的就是数据填充了
要是想在web上做效果,或是到处文件,要用com来取得连接 --------------------编程问答-------------------- 楼主这样是的想法是不太现实的.你要不在服务器端导出EXCEL,要不在客户端调用ActiveXObject来完成.
因为要导出EXCEL肯定要用到Office库. --------------------编程问答-------------------- 顶,真的是无解吗,其实是我是想,如果ActiveXObject用的时候,不更改ie设置,不就行了.怎么才能做到啊. --------------------编程问答-------------------- 你的htmltable中的数据是哪来的?
肯定要来源一个数据源吧?
比如来自一个DataTable,这样你就可以把这个DataTable导出到excel了 --------------------编程问答-------------------- public void ExportToExcel(DataTable dt)//这里传进参数DataTable
{
string fileName = "****name***" + DateTime.Now.ToShortDateString();//文件的名称
this.Response.Clear();
this.Response.Charset = "gb2312 ";
this.Response.ContentEncoding = System.Text.Encoding.Default;
this.Response.ContentType = "application/vnd.ms-excel";
this.Response.AddHeader("Pragma", "public");
this.Response.AddHeader("Cache-Control", "max-age=0");
this.Response.AppendHeader("content-disposition", "attachment; filename=" + HttpContext.Current.Server.UrlPathEncode(fileName) + ".xls");
string colHeaders = "";
string ls_item = "";
System.IO.StringWriter stringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlTextWriter = new System.Web.UI.HtmlTextWriter(stringWriter);
this.EnableViewState = false;
if (dt != null)
{
// header
for (int i = 0; i < dt.Columns.Count - 2; i++)
{
colHeaders += dt.Columns[i].Caption.ToString() + "\t ";
}
colHeaders += dt.Columns[dt.Columns.Count - 2].Caption.ToString() + "\n ";
Response.Write(colHeaders);
// table body
foreach (DataRow dr in dt.Rows)
{
// ID
ls_item += dr[0].ToString() + "\t ";
// digitalID
ls_item += dr[1].ToString() + "\t ";
// loginname
ls_item += dr[2].ToString() + "\t ";
// createdate
ls_item += dr[3].ToString() + "\t ";
// loginnam
ls_item += dr[4].ToString() + "\t ";
// corname
ls_item += dr[5].ToString() + "\t ";
// url
ls_item += dr[6].ToString() + "\t ";
// realname
ls_item += dr[7].ToString() + "\t ";
// tel
ls_item += dr[8].ToString() + "\t ";
// mobileno
ls_item += dr[9].ToString() + "\t ";
ls_item += dr[10].ToString() + "\t ";
//memo
ls_item += dr[11].ToString() + "\t ";
// leaguetype
ls_item += dr[12].ToString() + "\t ";
// approveflag
//输出EXcel的内容
ls_item += dr[13].ToString() + "\t ";
// skeyword
ls_item += dr[14].ToString() + "\t ";
Response.Write(ls_item);
ls_item = "";
}
this.Response.End();
}
} --------------------编程问答-------------------- 学习 up --------------------编程问答-------------------- 帮顶!!! --------------------编程问答-------------------- 5楼的可行 --------------------编程问答-------------------- 我也在找啊。。。。数据源是有啊,要是能有那个还提问干嘛,明显我们后台生成的前台表格样式不是规则的table赛。。 --------------------编程问答-------------------- 干嘛非要用ActiveXObject这个啊,一定要用js么 --------------------编程问答-------------------- --------------------编程问答-------------------- 不用Js的话,后台方式好多种啊,一种是用数据源直接生成csv文件或excel文件,下载....
一种是直接获取前台的htmltable,然后如下
public void CreateExcel(string strXml)
{
string filename = HttpUtility.UrlEncode(DateTime.Now.ToString("yyyyMMdd-HHmm"));
Response.AddHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = Encoding.GetEncoding("GB2312");
Response.Write(strXml);
Response.End();
}
--------------------编程问答-------------------- 我现在也是和楼主一样啊 要这样导出excel --------------------编程问答-------------------- Post方式把htmltable.innerHTML POST到一个页面,
public void CreateExcel(string str)
{
string filename = HttpUtility.UrlEncode(DateTime.Now.ToString("yyyyMMdd-HHmm"));
Response.AddHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = Encoding.GetEncoding("GB2312");
Response.Write(str);
Response.End();
}
--------------------编程问答-------------------- 这个能满足你的需求 --------------------编程问答-------------------- 总结:用后台代码生成你需要的输出流,供客户下载 --------------------编程问答--------------------
补充:.NET技术 , ASP.NET