我在网上找了好多的导出到Excel中js代码,都是需要使用ActiveXObject的,但要使用ActiveXObject,就必须要更改ie中的安全设置.
那样客户是不允许的.
还有,我现在做的东西,有好多的东西都不是用数据邦定控件生成的htmltable的.所以,不能用api那么导excel.
还有,我现在做的东西,有好多的页都要求有导出功能,所以只能将页面导出到excel中,不然的我每个业务,就点去画到excel中了.
还有,不想用服务端来实现.
求解决办法!
那样客户是不允许的.
还有,我现在做的东西,有好多的东西都不是用数据邦定控件生成的htmltable的.所以,不能用api那么导excel.
还有,我现在做的东西,有好多的页都要求有导出功能,所以只能将页面导出到excel中,不然的我每个业务,就点去画到excel中了.
还有,不想用服务端来实现.
求解决办法!
要是网页你可以用excel生成一个空的网页
然后把数据填充上去
————
新建excel另存为web,吧他的格式复制下来就行了
下面的就是数据填充了
要是想在web上做效果,或是到处文件,要用com来取得连接
因为要导出EXCEL肯定要用到Office库.
肯定要来源一个数据源吧?
比如来自一个DataTable,这样你就可以把这个DataTable导出到excel了
{
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 ";
//email
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();
}
}
一种是直接获取前台的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();
}
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();
}