.net下excel导出时出的问题,帮忙解决下!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net下excel导出时出的问题,帮忙解决下!相关的知识,希望对你有一定的参考价值。

.net中,在统计数据后,准备导出excel,点了出现如下提示问题:

无法显示 XML 页。
使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。

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

XML 文档只能有一个顶层元素。处理资源 'http://192.168.1.102/rpt/excel.aspx' 时出错。第 15 行,位置: 2

<INPUT id=Button1 onclick=SaveToExcel(); type=button value=导出为EXCEL name=Button1> <BR><BR>
-^

参考技术A 给你一个现成的.net导出excel文件的方法:
这里介绍.net利用xsl模板,根据xsl文件定义的样式,导出excel文件,这里还有一个jlExcel.xsl样式定义,就不复制了,你可以直接查看原文

1。导出文件页PRMjlExport.aspx.cs代码(我这里继承的自己定义BasePage,引用时可直接继承System.Web.UI.Page)

public partial class PRMjlExport : BasePage

ProblemJLController pc = new ProblemJLController();

protected void Page_Load(object sender, EventArgs e)

try

if (!this.IsPostBack)

//这里是添加临时文件权限,不然有可能导出的文件无法直接打开
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.AppendHeader("Expires ", System.DateTime.Now.AddMinutes(30).ToString());
HttpContext.Current.Response.AppendHeader("Pragma ", "public ");
HttpContext.Current.Response.AppendHeader("Cache-Control ", "must-revalidate, post-check=0, pre-check=0 ");
HttpContext.Current.Response.AppendHeader("Cache-Control ", "public ");

//获取参数
if (Request.QueryString["proID"] != null)

ExportProblemList(Request.QueryString["proID"].ToString());



catch (Exception err)
Response.Write(err.ToString());


private void ExportProblemList(string sProID)

try

//获取数据源
DataSet ds = pc.problemSelect(sProID);

XmlDocument myXml = new XmlDataDocument(ds);

MSXML2.DOMDocument pXmlDocShow = new DOMDocumentClass();
pXmlDocShow.async = false;
pXmlDocShow.loadXML(myXml.InnerXml);

XmlDocument pXslDoc = new XmlDocument();

pXslDoc.Load(Server.MapPath("jlExcel.xsl"));

MSXML2.DOMDocument pXslDocShow = new DOMDocumentClass();
pXslDocShow.async = false;
pXslDocShow.loadXML(pXslDoc.InnerXml);

string strTemp = pXmlDocShow.transformNode(pXslDocShow);
int strTempBegin = strTemp.IndexOf("<?xml");
int strTempEnd = strTemp.LastIndexOf("?>");
strTemp = strTemp.Remove(strTempBegin, strTempEnd - strTempBegin + 2);
strTemp = @"<?xml version='1.0' encoding='utf-8'?><?mso-application progid='Excel.Sheet'?>" + strTemp;

string _fileXls = DateTime.Now.ToString("yyyyMMdd");

Response.Clear();
Response.Buffer = true;
Response.Charset = "utf-8";
Response.AddHeader("Content-Disposition", "attachment; filename=" + _fileXls + ".xls");

Response.ContentType = "application/ms-word";

Response.Write(strTemp);

catch (Exception err)
Response.Write(err.ToString());




该文章转自:站点基地 ".net导出excel文件的方法"一文
参考技术B 已经远程搞定了!本回答被提问者采纳

使用 excelJs 插件导出 excel(原生js)?

使用 excelJs 插件导出 excel(原生js) 导出在谷歌和火狐下都正常,但是在ie11中报错字符集越界,点击导出按钮会报错 “ExcelJS”未定义,求大佬帮忙看下怎么解决??谢谢!!

插件如果导致这个导出来的话,那么这个是可以直接导出另一个格式的,这种格式可能会更适合一点。 参考技术A 只是爱意这个浏览器 他比较古老背 而且功能比较少呗 所以他就没办法运行呗 参考技术B 正常的,在设置里面进行导出的话,应该都是容易的,这个没有什么难度来的。 参考技术C 用这个导出的话,一般来说是没有问题的,因为这个插件的话是完全可以起作用追问

谷歌火狐没问题 ie11导不出来 会报错

参考技术D 使用插件导出的话,那应该有这样的软件,有通过这样的软件才能导出你所需要的问题的所在的,应该是有软件导出

以上是关于.net下excel导出时出的问题,帮忙解决下!的主要内容,如果未能解决你的问题,请参考以下文章

如何在不重新加载页面的情况下使用 ASP.NET MVC 5 将数据导出到 Excel?

导出excel的程序,COM 类工厂中 CLSID 的组件时失败.错误: 80040154

使用 excelJs 插件导出 excel(原生js)?

.NET实现大量数据导出excel,避免被截断

ArcEngine导出地图所有属性时出现错误

Java用POI导出excel时出现内存不足的问题,测试数据数量为:13万条,已经实现了,每六万条条数据时