小弟我做了一个用extjs导出excel文件
仿造网上例子做的。。之前能导出,可是现在比较怪异的问题是过了几天发现导出的excel不能打开了。。
我把代码贴出来:
js代码:
checkOutIndemnity : function(){
var vExportContent = this.PviewGrid.getExcelXml();
var fd=Ext.get('frmDummy');
if (!fd) {
fd=Ext.DomHelper.append(Ext.getBody(),
{
tag:'form',
method:'POST',
id:'frmDummy',
action:'exportexcel.jsp',
target:'_blank',
name:'frmDummy',
cls:'x-hidden',
cn:[
{
tag:'input',
name:'exportContent',
id:'exportContent',
type:'hidden'
}
]
},true);
}
fd.child('#exportContent').set({value:vExportContent});
fd.dom.submit();
}
jsp代码:
<%@ page language="java" pageEncoding="UTF-8"%>
<%
String content = request.getParameter("exportContent");
System.out.print(content);
content = new String(content.getBytes("ISO8859_1"),"utf-8");
response.setHeader("Content-Type","application/force-download");
response.setHeader("Content-Type","application/vnd.ms-excel");
response.setHeader("Content-disposition","attachment;filename=export.xls");
out.print(content);
%>
之前的乱码问题也解决了。。但是现在就是导出的excel 不能打开,2003和2007我都试过了 没用。出现:加载期间出现问题,工作簿设置。。
内容肯定是在excel里面,,因为文件很大,,但是就是打不开。。我晕死了。。
仿造网上例子做的。。之前能导出,可是现在比较怪异的问题是过了几天发现导出的excel不能打开了。。
我把代码贴出来:
js代码:
checkOutIndemnity : function(){
var vExportContent = this.PviewGrid.getExcelXml();
var fd=Ext.get('frmDummy');
if (!fd) {
fd=Ext.DomHelper.append(Ext.getBody(),
{
tag:'form',
method:'POST',
id:'frmDummy',
action:'exportexcel.jsp',
target:'_blank',
name:'frmDummy',
cls:'x-hidden',
cn:[
{
tag:'input',
name:'exportContent',
id:'exportContent',
type:'hidden'
}
]
},true);
}
fd.child('#exportContent').set({value:vExportContent});
fd.dom.submit();
}
jsp代码:
<%@ page language="java" pageEncoding="UTF-8"%>
<%
String content = request.getParameter("exportContent");
System.out.print(content);
content = new String(content.getBytes("ISO8859_1"),"utf-8");
response.setHeader("Content-Type","application/force-download");
response.setHeader("Content-Type","application/vnd.ms-excel");
response.setHeader("Content-disposition","attachment;filename=export.xls");
out.print(content);
%>
之前的乱码问题也解决了。。但是现在就是导出的excel 不能打开,2003和2007我都试过了 没用。出现:加载期间出现问题,工作簿设置。。
内容肯定是在excel里面,,因为文件很大,,但是就是打不开。。我晕死了。。
解决方案 »
- 求正则表达式,很难哦
- javascript中可以插入vbscript吗?
- 对于我来说是一个值100分的实际问题(关于事件的重复响应)
- IE高级问题! 请大虾指教! 在线等!!!!!!!
- 表单中的元素name="a{portal}b"这样的名字
- web端图片剪裁
- getElementById???
- 如何得到一个页面元素的位置信息。包含(top,left,width,height)
- 急急急如国一个整数除另一个整数我想得到他能分几组,不是得余数
- 这是什么意思:mytable.rows[mytable.rows.length - 1].insertAdjacentElement("afterEnd", mytable.rows[nLoop].cloneNode(true));
- WMLScript 如何实现二级下拉框
- 求助:在web开发中,怎样记录用户在系统中的各项操作记录
这个问题我在用jxl时候碰到这个问题
最后发现是excel版本问题。
extjs 没有碰到过
记得官方extjs插件有这个插件
能直接到出 和导入
Response.reset();
{
// 当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
endIndex = pageCount;
if (fileName == "")
FileType = "csv";
curContext.Response.Clear();
if (dataList == null)
return;
if (endIndex <= 0 || endIndex > dataList.Count)
endIndex = dataList.Count; if (dataList != null)
{
// 设置编码和附件格式
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
curContext.Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(fileName,Encoding.GetEncoding("gb2312")) + "." + FileType);
curContext.Response.Flush();
//导出excel文件 StringBuilder sb = new StringBuilder();
StringBuilder sbline = new StringBuilder();
string coltmp = FileType.ToLower() == "csv" ? "\"{0}\"," : "{0},"; Storage rage = new Storage();
int itemp = 0;
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("/Xml/OutStockFormart.xml"));
XmlNodeList xmlNodeList = doc.SelectNodes("//FileFormats/FileFormat[@Code='" + ExeType + "']/Field[@Display='True']");
foreach (XmlNode xdcolName in xmlNodeList)
{
sbline.Append(string.Format(coltmp, xdcolName.Attributes["Description"].Value));
}
if (sbline.Length == 0)
return;
sbline.ToString().Remove(sbline.Length - 1);
sb.AppendLine(sbline.ToString());
sbline.Remove(0, sbline.Length); foreach (Storage age in dataList)
{
if (itemp == endIndex || itemp == 10000)
break; sbline.Remove(0, sbline.Length);
foreach (XmlNode xdcolValue in xmlNodeList)
{
string fieldName = xdcolValue.Attributes["Name"].Value;
if (!string.IsNullOrEmpty(fieldName))
{
PropertyInfo p = age.GetType().GetProperty(fieldName);
if (p == null)
{
sbline.Append(string.Format(coltmp, ""));
continue;
}
object value = p.GetValue(age, null);
if (value == null)
{
sbline.Append(string.Format(coltmp, ""));
continue;
}
if (p.PropertyType == typeof(Decimal))
{
if ((Decimal)value == decimal.MinValue)
{
value = 0;
}
} sbline.Append(string.Format(coltmp, value.ToString())); }
}
sb.AppendLine(sbline.ToString());
itemp++;
} //返回客户端
//HttpCookie aCookie = new HttpCookie("cbo");
//aCookie.Expires = DateTime.Now.AddDays(-1);
//Response.Cookies.Add(aCookie);
curContext.Response.Write(sb.ToString());
curContext.Response.End();
}
}