AS3 / FLASH / AIR:可以在Excel中打开XML吗?是

时间:2013-09-09 21:04:51

标签: xml excel actionscript-3 flash air

是否可以从AIR桌面应用程序中在Excel中打开XML?

我有一个XML数据库,我想在Excel中打开它进行打印。我认为,打印存储在数据网格(闪存组件)中的完整数据是不可能的。

提前致谢。

:::::更新我:::::

null.point3r 的帮助下,我找到了Excel。现在我必须尝试了解如何用它打开XML。

他给了我链接的线索:

午餐excel并打开XML文件。 (创建NativeProcess并将XML路径作为argumentcommand line switches for excel传递。

但是我对这些东西不熟悉所以,如果有人有一个例子,我会很感激他的帮助。

到目前为止我所拥有的:

import flash.filesystem.File;

var myXML = File.documentsDirectory.resolvePath("storage/companies.xml");

if(myXML.exists){
    trace ("Eureka!!!");
}

var excel:File = new File(); 
excel.nativePath = "C:\\Archivos de programa\\Microsoft Office\\Office12\\excel.exe";

if(excel.exists){
    trace ("Got it!!!");
}
//get executable(file.nativePath):File;

注意:我将使用数组和循环来检查不同的Office版本。

::::更新II ::::

我收到错误#3219:无法启动NativeProcess。 '当前个人资料不支持。':

import flash.filesystem.File;

var myXML = File.documentsDirectory.resolvePath("storage/companies.xml");

if (myXML.exists) {
    trace(myXML.nativePath);
}

var process:NativeProcess;
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var excel:File = new File();
excel.nativePath = "C:\\Archivos de programa\\Microsoft Office\\Office12\\excel.exe";

if (excel.exists) {
    trace(excel.nativePath);
}

nativeProcessStartupInfo.executable = excel;

var processArgs:Vector.<String> = new Vector.<String>();
processArgs[0] = String(myXML.nativePath);
nativeProcessStartupInfo.arguments = processArgs;

process = new NativeProcess();
process.start(nativeProcessStartupInfo);

1 个答案:

答案 0 :(得分:1)


<强>更新

var process:NativeProcess;
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var excel:File = new File(); 
excel.nativePath = "path\to\excel";
if(excel.exists){
    trace (excel.nativePath);
}
nativeProcessStartupInfo.executable = excel;

var processArgs:Vector.<String> = new Vector.<String>();
processArgs[0] = "path\to\xml";
nativeProcessStartupInfo.arguments = processArgs;

process = new NativeProcess();
process.start(nativeProcessStartupInfo);