用货币格式将jqgrid数据导出到excel/pdf [英] Export jqgrid data into excel/pdf with currency format
问题描述
我需要导出货币格式为 $ 4,355 的jqgrid数据.
I need to export jqgrid data with currency format like $4,355.
我的同事在下面.我正在调用类似exportGrid('griddtable',[1,2,3,4,5])
My colmodel is below. I am calling function like exportGrid('griddtable',[1,2,3,4,5])
name : 'totalSpend',
index : 'totalSpend',
align : 'right',
sorttype : 'number',
formatter : 'currency',
formatoptions : {
prefix : '$',
thousandsSeparator : ','
}
function exportGrid(table, filtered) {
var mya = new Array();
mya = $("#" + table).getDataIDs(); // Get All IDs
var data = $("#" + table).getRowData(mya[0]); // Get First row to get the
// labels
var colNames = new Array();
var ii = 0;
for ( var i in data) {
colNames[ii++] = i;
} // capture col names
var html = "";
for ( var k = 0; k < colNames.length; k++) {
if (filtered.indexOf(k) >= 0) {
html = html + colNames[k] + "\t";
}
}
html = html + "\n"; // Output header with end of line
for (i = 0; i < mya.length; i++) {
data = $("#" + table).getRowData(mya[i]); // get each row
for ( var j = 0; j < colNames.length; j++) {
if (filtered.indexOf(j) >= 0) {
html = html + data[colNames[j]] + "\t"; // output each Row as
// tab delimited
}
}
html = html + "\n"; // output each row with end of line
}
html = html + "\n"; // end of line at the end
var form = "<form name='csvexportform' action='exportData.do?method=excelExport' method='post'>";
form = form + "<input type='hidden' name='fileName' value='" + fileName
+ "'>";
form = form + "<input type='hidden' name='csvBuffer' value='" + html + "'>";
form = form + "</form><script>document.csvexportform.submit();</sc"
+ "ript>";
OpenWindow = window.open('', '');
OpenWindow.document.write(form);
OpenWindow.document.close();
}
有什么建议吗?是否有可能获得具有格式化值的行数据?
Any suggestions? Is there any possibility to get the row data with formatted value?
推荐答案
最后我明白了.我使用了一些技巧,但是效果很好.我使用它们的小数位标识了所有货币值,并格式化了该值.因此,我在所有monsy值上都获得了$符号.我知道这不是最佳解决方案.但对某人可能有用.
Finally I got it. I used some tricks, but it is working great. I identified all money values by using their decimal places and formatted that value. Hence i got $ symbol on all monsy values. I knew it's not an optimal solution. But may be useful for someone.
var RE = new RegExp(/^\d*\.\d\d$/); //Regular expression to find all 2 decimal values
for (i = 0; i < mya.length; i++) {
data = $("#" + table).getRowData(mya[i]); // get each row
for ( var j = 0; j < colNames.length; j++) {
if (filtered.indexOf(j) >= 0) {
if (RE.test(data[colNames[j]])) { //If matches add $symbol
html = html + "$" + data[colNames[j]] + "\t"; // output for money each Row as
// tab delimited
} else {
html = html + data[colNames[j]] + "\t"; // output each Row as
// tab delimited
}
}
}
html = html + "\n"; // output each row with end of line
}
这篇关于用货币格式将jqgrid数据导出到excel/pdf的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!