我有一个数据表,我想要一个导出功能,这个应用程序在网络上运行,所以我想创建一个csv文件,然后提供(打开或保存为选项)通常的下载选项。我现在正在使用CSV编写器
这里有问题的行是Runtime.getRuntime().exec("export.csv");
在底部列出的错误
我该怎么做?
以下是与按钮绑定的操作
Action exportData = new Action() {
private static final long serialVersionUID = -7803023178172634837L;
@Override
public void execute(UIContext uic, ActionEvent event) {
try{
CSVWriter writer = new CSVWriter(new FileWriter("export.csv"), '\t');
int i = 0;
while (i < forExport.getTotalCount()){
String[] entries = {
forExport.getSearchResults().get(i).getName().getGivenNames() + forExport.getSearchResults().get(i).getName().getSurname(),
forExport.getSearchResults().get(i).getId()
};
writer.writeNext(entries);
i++;
}
writer.close();
Runtime.getRuntime().exec("export.csv");
}catch(Exception e){
system.out.print(e);
}
}
};
收到错误java.io.IOException: Cannot run program "export.csv": CreateProcess error=193, %1 is not a valid Win32 applicationDEBUG
注意:我不希望它在Excel中自动打开,我想要保存或打开选项。
答案 0 :(得分:1)
我不明白为什么你要执行任何事情。这是服务器代码。您根本不想在服务器上执行Excel。您希望将文件与内容处置标头一起写回浏览器。
答案 1 :(得分:0)
你应该试试
Runtime.getRuntime().exec("excel.exe export.csv");
export.csv
不是有效的Windows命令。
答案 2 :(得分:0)
由于.csv文件不可执行,在命令字符串参数中指定要打开..csv文件的程序名称。