• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Coolite优化导出Excel文件实现代码

asp 搞代码 4年前 (2022-01-03) 32次浏览 已收录 0个评论

Coolite 优化 导出 Excel 文件。可以设定列宽和导出列选择。

1。先来张图:

导出前数据:

导出结果:

设置列宽和屏蔽栏位:

结果2:

2.先把脚本文件定义了。

代码如下:
//Copyright 2009 无忧[email protected]
var gridElse = {
getJsonToHidden: function(hidden, grid, format, title, fileName) {
hidden.setValue(this.getJsonDate(grid, format, title, fileName));
grid.submitData(true);
return true;
},
getJsonDate: function(grid, format, title, fileName) {
if (fileName == null || fileName == “”) fileName = title;
var result = {
title: title,
format: format,
fileName: fileName,
dataCount: grid.store.reader.jsonData.length,
columns: ”,
jsonDate: ”
};
//获取分组ID
var groupField;
if (typeof (grid.view.getGroupField) == “undefined”)
{ groupField = false; }
else { groupField = grid.view.getGroupField(); }
//设置表头
var columns = this.getColumns(grid); //.getColumnModel().columns;
var columnCount = columns.length
for (var i = 0; i <columnCount; i++) {
if (columns[i].dataIndex != null && columns[i].dataIndex != “”) {
fld = grid.store.fields.get(columns[i].dataIndex);
columns[i].recordFieldType = this.getRecordFieldType(fld);
}
if (groupField && groupField == columns[i].dataIndex)
columns[i].BGroup = true;
}
result.columns = Ext.encode(columns);
//返回数据
if (result.dataCount > 0 && result.dataCount <= 500) {
result.jsonDate = Ext.encode(grid.store.reader.jsonData);
}
else if (result.dataCount == null) result.dataCount = 0;
return Ext.encode(result);
},
getRecordFieldType: function(fld) {
if (fld == null) return “”;
switch (fld.type) {
case “int”: return “Int”;
case “float”: return “Float”;
case “bool”:
case “boolean”: return “Boolean”;
case “date”: return “Date”;
case “string”: return “String”;
default: return “Auto”;
}
},
getColumns: function(grid) {
var columns = grid.getColumnModel().columns;
var columnCount = columns.length
for (var i = columnCount – 1; i >= 0; i–) {
if (columns[i].isColumnPlugin) columns.remove(columns[i]);
}
return columns;
}
};

3.调用方法:

代码如下:
gridElse.getJsonToHidden(#{存储控件},#{GridPanel控件},’xls’,’标题’,’文件名’);

4.aspx页面:
XXX.aspx

代码如下:

……

……

……

……

5.cs代码:
XXX.aspx.cs

代码如下:
protected void Sdate_SubmitData(object sender, StoreSubmitDataEventArgs e)
{
String json = HToFile.Value.ToString();
if (!String.IsNullOrEmpty(json))
{
ExportDate exportDate = JSON.Deserialize(json);
if (exportDate.dataCount > 0)
{
if (exportDate.Dates == null || exportDate.Dates.Length <exportDate.dataCount)
{
//如数据超过500条这重新查询数据导出
}
switch (exportDate.format)
{
case “xls”:
GetToExcel(exportDate);
break;
case “pdf”:
……
break;
}
}
}
}
public static void GetToExcel(ExportDate exportDate)
{
if (exportDate.Dates == null) { return; }
HttpContext context = HttpContext.Current;
if (context != null)
{
String rowid = “”;
StringBuilder sb = new StringBuilder();
int columns = 0;
foreach (GridColumnInfo item in exportDate.GridColumnInfos)
{
if (!item.hidden || item.BGroup)
{
columns++;
}
}
#region 头部
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(” “);
sb.Append(” 12.00″);
sb.Append(” “);
sb.Append(” “);
sb.Append(” “);
sb.Append(” “);
sb.Append(” “);
sb.Append(” 11640″);
sb.Append(” 19200″);
sb.Append(” 0″);
sb.Append(” 90″);
sb.Append(” False”);
sb.Append(” False”);
sb.Append(” “);
#region 样式
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(““);
//sb.Append(“”);
//sb.Append(“”);
//sb.Append(“”);
//sb.Append(“”);
//sb.Append(“”);
//sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(““);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(““);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
#endregion
sb.AppendFormat(“”, exportDate.title);
sb.AppendFormat(“

“, columns, exportDate.Dates.Length + 2);
#endregion
//表列宽度
int ColumnWidthsZ = 0;
foreach (GridColumnInfo item in exportDate.GridColumnInfos)
{
if (!item.hidden || item.BGroup)
{
ColumnWidthsZ += item.width;
sb.AppendFormat(“”, item.width);
}
}
//标题
sb.Append(“”);
sb.AppendFormat(“”, columns – 1);
sb.AppendFormat(“{0}”, exportDate.title);
sb.Append(“”);
sb.Append(“”);
//表头
sb.Append(“”);
foreach (GridColumnInfo item in exportDate.GridColumnInfos)
{
if (!item.hidden || item.BGroup)
{
sb.AppendFormat(“{0}”, item.header);
}
}
sb.Append(“”);
//数据
int i = 0;
string cellClass = “”;
foreach (Dictionary row in exportDate.Dates)
{
i++;
cellClass = ((i & 1) == 0) ? “odd” : “even”;
sb.Append(“”);
foreach (GridColumnInfo item in exportDate.GridColumnInfos)
{
rowid = item.id;
if (string.IsNullOrEmpty(rowid)) rowid = item.dataIndex;
if (!String.IsNullOrEmpty(rowid) && (!item.hidden || item.BGroup) && row.ContainsKey(rowid))
{
sb.AppendFormat(“{3}”,
cellClass, exportDate.GetStyleID(item.recordFieldType), exportDate.GetDataType(item.recordFieldType), row[rowid]);
}
}
sb.Append(“”);
}
#region 尾部
sb.Append(“

“);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“

“);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“Blank来源gaodai$ma#com搞$$代**码网“);
sb.Append(“1”);
sb.Append(“32767”);
sb.Append(“”);
sb.Append(“600”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“”);
sb.Append(“False”);
sb.Append(“False”);
sb.Append(“”);
sb.Append(“”);
#endregion
context.Response.Clear();
if (context.Request.Browser.Browser != “IE”)
context.Response.AppendHeader(“Content-Disposition”, String.Format(“attachment; filename=\”{0}.xls\””, exportDate.fileName));
else context.Response.AppendHeader(“Content-Disposition”, String.Format(“attachment; filename={0}.xls”, System.Web.HttpUtility.UrlEncode(exportDate.fileName)));
context.Response.ContentType = “application/excel”;
context.Response.Write(sb.ToString());
context.Response.End();
}
}

以上就是Coolite优化导出Excel文件实现代码的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Coolite优化导出Excel文件实现代码

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址