有人可以提供一些例子吗?我正在浏览,但无法找到这种类型的一个例子。
修改
浏览了很多,并了解了如何将datagrid数据转换为csv格式。现在如何将其转换为excel?有没有办法在不使用任何服务器脚本的情况下执行此操作?难道不能单独在Flex中完成吗?
答案 0 :(得分:3)
as3xls对您有write xls file。它只支持一张纸(但我觉得这很好)。
但我认为如果你不需要使用excel函数(如单元格公式),使用@susichan和@Rafal Ziolkowski所述的csv或html会更简单。
哦,编写csv有csvlib。对于html,就像编写XML一样好。
答案 1 :(得分:1)
Excel将HTML表作为一种电子表格读取。只需逐行逐行读取网格,并生成一组HTML表格单元格,并生成名为whatever.xls的文件。
答案 2 :(得分:1)
如果您有Java servlet后端,则可以使用servlet输出文件。
我唯一的想法是将Flex数据输出到带有textarea的弹出窗口,该文本区域可由用户复制并粘贴到文件中。
答案 3 :(得分:1)
首先从以下链接
下载swc文件现在你需要做一些工作,只需复制该代码并适当地给出列名。
public function roExport_export_Result(e:ResultEvent):void
{
if(e.result.length != 0)
{
btnExportToExcel.enabled = true;
var arrExportResult:Array = e.result as Array;
xlsFile = new ExcelFile();
var sheet:Sheet = new Sheet();
sheet.resize(arrExportResult.length+1,14);
sheet.setCell(0,0,'Id');
sheet.setCell(0,1,'Full Name');
sheet.setCell(0,2,'Gender');
sheet.setCell(0,3,'Birth Date');
sheet.setCell(0,4,'College Name');
sheet.setCell(0,5,'Qualification');
sheet.setCell(0,6,'Email Id');
sheet.setCell(0,7,'Mobile');
sheet.setCell(0,8,'Position Applied For');
sheet.setCell(0,9,'Technology Interested');
sheet.setCell(0,10,'User Name');
sheet.setCell(0,11,'Password');
sheet.setCell(0,12,'Exam Date');
sheet.setCell(0,13,'Percentage');
sheet.setCell(0,14,'IsActive');
for(var i:int=0;i<arrExportResult.length;i++)
{
sheet.setCell(i+1, 0, arrExportResult[i].Id);
sheet.setCell(i+1, 1, arrExportResult[i].FullName);
if(arrExportResult[i].Gender == 1)
{
arrExportResult[i].Gender = "Male"
}
else
{
arrExportResult[i].Gender = "Female";
}
sheet.setCell(i+1, 2, arrExportResult[i].Gender);
var date:String = arrExportResult[i].BirthDate.date.toString();
var month:String = (arrExportResult[i].BirthDate.month + 1).toString();
var year:String = arrExportResult[i].BirthDate.fullYear.toString();
var bDate:String = date + "/" + month + "/" + year;
arrExportResult[i].BirthDate = bDate;
sheet.setCell(i+1, 3, arrExportResult[i].BirthDate);
sheet.setCell(i+1, 4, arrExportResult[i].CollegeId);
sheet.setCell(i+1, 5, arrExportResult[i].QualificationId);
sheet.setCell(i+1, 6, arrExportResult[i].EmailId);
sheet.setCell(i+1, 7, arrExportResult[i].Mobile);
sheet.setCell(i+1, 8, arrExportResult[i].PositionName);
sheet.setCell(i+1, 9, arrExportResult[i].TechForTraining);
sheet.setCell(i+1, 10, arrExportResult[i].UserName);
sheet.setCell(i+1, 11, arrExportResult[i].Password);
var date:String = arrExportResult[i].CreatedDate.date.toString();
var month:String = (arrExportResult[i].CreatedDate.month + 1).toString();
var year:String = arrExportResult[i].CreatedDate.fullYear.toString();
var hour:String = arrExportResult[i].CreatedDate.hours.toString();
var min:String = arrExportResult[i].CreatedDate.minutes.toString();
var sec:String = arrExportResult[i].CreatedDate.seconds.toString();
var cDate:String = date + "/" + month + "/" + year + " " + hour + ":" + min + ":" + sec;
arrExportResult[i].CreatedDate = cDate;
sheet.setCell(i+1, 12, arrExportResult[i].CreatedDate);
sheet.setCell(i+1, 13, arrExportResult[i].Percentage);
sheet.setCell(i+1, 14, arrExportResult[i].IsActive);
}
dataGridResult.dataProvider = arrExportResult;
xlsFile.sheets.addItem(sheet);
bytes = xlsFile.saveToByteArray();
}
else
{
arrExportResult = new Array();
dataGridResult.dataProvider = arrExportResult;
btnExportToExcel.enabled = false;
xlsFile = new ExcelFile();
var sheet:Sheet = new Sheet();
Alert.show("No Records Found",parentApplication.alertTitle);
}
}
答案 4 :(得分:0)
答案 5 :(得分:0)
as3xls似乎读得很好,但编写Excel文件是另一回事。它不能编写多表工作簿,它[大多数时候]无法读取它自己的文件,当Excel可以读取as3xls吐出的内容时,你必须进行多次保存以获取所有垃圾。一个真正的无赖。我正在使用AIR 2.0的NativeProcess来调用Python脚本进行编写,我想我必须首先将datagrid / ArrayCollection导出为CSV ...似乎还有很长的路要走。无法相信没有更好的ActionScript选项可以用于Excel。这真是罕见的任务吗?