Extjs 将SDK2网格导出为CSV
我想将我的SDK2网格导出到CSV或Excel-我怀疑Rally某处可能存在此代码,因为您可以将例如用户故事从公文包项目导出到CSV 是否有一个解决方案,人们知道,并可以张贴 我在Sencha网站上找到了一些a,它完全是客户端,但我无法使用Rally SDK2网格使其工作Extjs 将SDK2网格导出为CSV,extjs,extjs4,rally,Extjs,Extjs4,Rally,我想将我的SDK2网格导出到CSV或Excel-我怀疑Rally某处可能存在此代码,因为您可以将例如用户故事从公文包项目导出到CSV 是否有一个解决方案,人们知道,并可以张贴 我在Sencha网站上找到了一些a,它完全是客户端,但我无法使用Rally SDK2网格使其工作 如果您只想转到CSV,我想可能会有更简单的解决方案。您可以通过从底层存储获取数据并创建一个网格来创建一个导出。您可能会遇到一些问题,无法在不同的浏览器中正常工作 您还可以查看此处制作的内容。您可以通过从底层存储中获取数据并创建
如果您只想转到CSV,我想可能会有更简单的解决方案。您可以通过从底层存储获取数据并创建一个网格来创建一个导出。您可能会遇到一些问题,无法在不同的浏览器中正常工作
您还可以查看此处制作的内容。您可以通过从底层存储中获取数据并创建一个数据库,从网格中创建导出。您可能会遇到一些问题,无法在不同的浏览器中正常工作
您还可以看到这里制作的东西。查看了上面Charles给出的示例,并制作了这个简化对象以导出EXT-JS网格,因此也可以使用Rally网格 对于IE,直接转到Excel,对于其他浏览器,下载CSV-但是使用数据URI方法有点困难文件名是不可控的,Excel在打开之前会抱怨一点,但是它的功能是有效的 如果有人真的知道Javascript,想发布一个改进,我将不胜感激
// Derived and simplified from example on bryntum.com
Ext.define("GridExporter", {
dateFormat : 'Y-m-d g:i',
exportGrid: function(grid) {
if (Ext.isIE) {
this._ieToExcel(grid);
} else {
var data = this._getCSV(grid);
window.location = 'data:text/csv;charset=utf8,' + encodeURIComponent(data);
}
},
_escapeForCSV: function(string) {
if (string.match(/,/)) {
if (!string.match(/"/)) {
string = '"' + string + '"';
} else {
string = string.replace(/,/g, ''); // comma's and quotes-- sorry, just loose the commas
}
}
return string;
},
_getFieldText: function(fieldData) {
var text;
if (fieldData == null || fieldData == undefined) {
text = '';
} else if (fieldData._refObjectName && !fieldData.getMonth) {
text = fieldData._refObjectName;
} else if (fieldData instanceof Date) {
text = Ext.Date.format(fieldData, this.dateFormat);
} else if (!fieldData.match) { // not a string or object we recognize...bank it out
text = '';
} else {
text = fieldData;
}
return text;
},
_getFieldTextAndEscape: function(fieldData) {
var string = this._getFieldText(fieldData);
return this._escapeForCSV(string);
},
_getCSV: function (grid) {
var cols = grid.columns;
var store = grid.store;
var data = '';
var that = this;
Ext.Array.each(cols, function(col, index) {
if (col.hidden != true) {
data += that._getFieldTextAndEscape(col.text) + ',';
}
});
data += "\n";
store.each(function(record) {
var entry = record.getData();
Ext.Array.each(cols, function(col, index) {
if (col.hidden != true) {
var fieldName = col.dataIndex;
var text = entry[fieldName];
data += that._getFieldTextAndEscape(text) + ',';
}
});
data += "\n";
});
return data;
},
_ieGetGridData : function(grid, sheet) {
var that = this;
var resourceItems = grid.store.data.items;
var cols = grid.columns;
Ext.Array.each(cols, function(col, colIndex) {
if (col.hidden != true) {
console.log('header: ', col.text);
sheet.cells(1,colIndex + 1).value = col.text;
}
});
var rowIndex = 2;
grid.store.each(function(record) {
var entry = record.getData();
Ext.Array.each(cols, function(col, colIndex) {
if (col.hidden != true) {
var fieldName = col.dataIndex;
var text = entry[fieldName];
var value = that._getFieldText(text);
sheet.cells(rowIndex, colIndex+1).value = value;
}
});
rowIndex++;
});
},
_ieToExcel: function (grid) {
if (window.ActiveXObject){
var xlApp, xlBook;
try {
xlApp = new ActiveXObject("Excel.Application");
xlBook = xlApp.Workbooks.Add();
} catch (e) {
Ext.Msg.alert('Error', 'For the export to work in IE, you have to enable a security setting called "Initialize and script ActiveX control not marked as safe" from Internet Options -> Security -> Custom level..."');
return;
}
xlBook.worksheets("Sheet1").activate;
var XlSheet = xlBook.activeSheet;
xlApp.visible = true;
this._ieGetGridData(grid, XlSheet);
XlSheet.columns.autofit;
}
}
});
查看上面Charles给出的示例,并将此简化对象导出到EXT-JS网格,因此也可用于Rally网格 对于IE,直接转到Excel,对于其他浏览器,下载CSV-但是使用数据URI方法有点困难文件名是不可控的,Excel在打开之前会抱怨一点,但是它的功能是有效的 如果有人真的知道Javascript,想发布一个改进,我将不胜感激
// Derived and simplified from example on bryntum.com
Ext.define("GridExporter", {
dateFormat : 'Y-m-d g:i',
exportGrid: function(grid) {
if (Ext.isIE) {
this._ieToExcel(grid);
} else {
var data = this._getCSV(grid);
window.location = 'data:text/csv;charset=utf8,' + encodeURIComponent(data);
}
},
_escapeForCSV: function(string) {
if (string.match(/,/)) {
if (!string.match(/"/)) {
string = '"' + string + '"';
} else {
string = string.replace(/,/g, ''); // comma's and quotes-- sorry, just loose the commas
}
}
return string;
},
_getFieldText: function(fieldData) {
var text;
if (fieldData == null || fieldData == undefined) {
text = '';
} else if (fieldData._refObjectName && !fieldData.getMonth) {
text = fieldData._refObjectName;
} else if (fieldData instanceof Date) {
text = Ext.Date.format(fieldData, this.dateFormat);
} else if (!fieldData.match) { // not a string or object we recognize...bank it out
text = '';
} else {
text = fieldData;
}
return text;
},
_getFieldTextAndEscape: function(fieldData) {
var string = this._getFieldText(fieldData);
return this._escapeForCSV(string);
},
_getCSV: function (grid) {
var cols = grid.columns;
var store = grid.store;
var data = '';
var that = this;
Ext.Array.each(cols, function(col, index) {
if (col.hidden != true) {
data += that._getFieldTextAndEscape(col.text) + ',';
}
});
data += "\n";
store.each(function(record) {
var entry = record.getData();
Ext.Array.each(cols, function(col, index) {
if (col.hidden != true) {
var fieldName = col.dataIndex;
var text = entry[fieldName];
data += that._getFieldTextAndEscape(text) + ',';
}
});
data += "\n";
});
return data;
},
_ieGetGridData : function(grid, sheet) {
var that = this;
var resourceItems = grid.store.data.items;
var cols = grid.columns;
Ext.Array.each(cols, function(col, colIndex) {
if (col.hidden != true) {
console.log('header: ', col.text);
sheet.cells(1,colIndex + 1).value = col.text;
}
});
var rowIndex = 2;
grid.store.each(function(record) {
var entry = record.getData();
Ext.Array.each(cols, function(col, colIndex) {
if (col.hidden != true) {
var fieldName = col.dataIndex;
var text = entry[fieldName];
var value = that._getFieldText(text);
sheet.cells(rowIndex, colIndex+1).value = value;
}
});
rowIndex++;
});
},
_ieToExcel: function (grid) {
if (window.ActiveXObject){
var xlApp, xlBook;
try {
xlApp = new ActiveXObject("Excel.Application");
xlBook = xlApp.Workbooks.Add();
} catch (e) {
Ext.Msg.alert('Error', 'For the export to work in IE, you have to enable a security setting called "Initialize and script ActiveX control not marked as safe" from Internet Options -> Security -> Custom level..."');
return;
}
xlBook.worksheets("Sheet1").activate;
var XlSheet = xlBook.activeSheet;
xlApp.visible = true;
this._ieGetGridData(grid, XlSheet);
XlSheet.columns.autofit;
}
}
});
美好的如果typeofielddata==number{text=+fieldData;}否则如果!fieldData.match{//不是我们识别的字符串或对象…请将其清空text=;}否则{text=fieldData;}很好。如果typeofielddata==number{text=+fieldData;}否则如果!fieldData.match{//不是我们识别的字符串或对象…请将其清空text=;}否则{text=fieldData;}