以前老看别人做asp.net导出到execl ,但自己从来没亲手做过,好吧今天终于遇到了这个问题,网上找了很多代码 ,用不上错误一大堆,如果哪位好心的人 能给出实例或详细的源代码贴上,或发邮箱[email protected]...小弟将万分感激,实在没分了,就剩那么点,谢谢!
解决方案 »
- .NET Framework 4.0 中怎么不能引用 System.Web.Security 啊?
- html用post、get方法和aspx直接取值两种方法的优劣?
- 关于在GridView中自定义列图片为空的问题~~
- 如何将GridView 数据中指定的行输出到excel中
- 如何将excel文件写入到sql数据库字段中?
- __doPostBack的问题
- 如何验证datagrid中模板列里的textbox所输入的值 只能为数字?在线等,急!
- 请问literal控件的作用是什么
- 为什么我绑定数据无效???
- 开发进销存软件是用JAVA还是ASP.NET?JAVA和ASP.NET哪个容易上手吗?主要是这两个都不会,但有很好的编
- div展示
- 关于日期从某月的1日循环到月底,当中的每天都能取到,怎么表示
/// 导出Excel(不带表头)
/// </summary>
/// <param name="dt"></param>
/// <param name="FileName"></param>
/// <param name="response"></param>
public static void CreateExcel(DataTable dt, string FileName, HttpResponse response)
{
HttpResponse resp;
resp = response;
FileName = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(FileName));
resp.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName + ".xls");
string colHeaders = "", ls_item = ""; //定义表对象与行对象,同时用DataSet对其值进行初始化 DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
int i = 0;
int cl = dt.Columns.Count; //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
//for (i = 0; i < cl; i++)
//{
// if (i == (cl - 1))//最后一列,加n
// {
// colHeaders += dt.Columns[i].Caption.ToString().Replace("\n", " ") + "\n";
// }
// else
// {
// colHeaders += dt.Columns[i].Caption.ToString().Replace("\n", " ") + "\t";
// } //}
//resp.Write(colHeaders.Replace("\r", " "));
//向HTTP输出流中写入取得的数据信息 //逐行处理数据
foreach (DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))//最后一列,加n
{
ls_item += row[i].ToString().Replace("\n", " ").Replace("\"", "\"\"") + "\n";
}
else
{
ls_item += row[i].ToString().Replace("\n", " ").Replace("\"", "\"\"") + "\t";
} }
resp.Write(ls_item.Replace("\r", " "));
ls_item = ""; }
resp.End();
}
请哪位大虾给个思路 我的EXECL表格式 如上图所示
function TableToExcel(tableName,fileName)
{
if (typeof(EXPORT_OBJECT)!="object")
{
document.body.insertAdjacentHTML("afterBegin","<OBJECT style='display:none' classid=clsid:0002E510-0000-0000-C000-000000000046 id=EXPORT_OBJECT></Object>");//office2000
document.body.insertAdjacentHTML("afterBegin","<OBJECT style='display:none' classid=clsid:0002E559-0000-0000-C000-000000000046 id=EXPORT_OBJECT1></Object>");//office2003
}
showLoading("正在导出数据...",200,50);
var objData=eval("document.all."+tableName);
var obj=eval("document.all.EXPORT_OBJECT");
var obj1=eval("document.all.EXPORT_OBJECT1");
var newFileName=fileName;
if (newFileName=="")
{
newFileName="导出文件";
}
if (typeof(objData)!="object")
{
hideLoading();
alert("导出数据表不存在");
return;
}
try
{
if (typeof(obj.ActiveSheet)=="object")//Office 2000/2007
{
obj.DataType = "HTMLData";
obj.HTMLData =objData.outerHTML;
obj.ActiveSheet.Export("C:\\"+newFileName+".xls",0);
}
else//Office 2003
{
obj1.DataType = "HTMLData";
obj1.HTMLData =objData.outerHTML;
obj1.Export("C:\\"+newFileName+".xls",0);
}
alert("导出完毕,文件路径为[C:\\"+newFileName+".xls]");
}
catch(e)
{
alert("导出失败,请确定本机是否安装正确的Excel系统或者是否打开相同文件名的文件。");
}
hideLoading();
}
参考