3

我从我的 JTable 创建了一个 Excel 文件。创建它的同一个按钮也会打开它。但它给出了一个提示:

您尝试打开的文件与文件扩展名指定的格式不同。在打开文件之前,请确认文件没有损坏并且来自受信任的用户。您要打开文件吗?

当我单击确定时,文件打开。我正在使用 Office 2007 并将文件另存为.xls. 有没有办法从代码级别停止提示?这是创建和打开文件的代码:

if (obj == btnExport) {
  File f = new File("Student Results");
  f.mkdir();
  try {
    TableModel model = DataBaseTable.getModel();
    FileWriter excel = new FileWriter("Student Results/" + exam  + "_"+ level + "_" + year + ".xls");
    for(int i = 0; i < model.getColumnCount(); i++){
      excel.write(model.getColumnName(i) + "\t");
    }

    excel.write("\n");

    for(int i=0; i< model.getRowCount(); i++) {
      for(int j=0; j < model.getColumnCount(); j++) {
        excel.write(model.getValueAt(i,j).toString()+"\t");
      }
      excel.write("\n");
    }

    excel.close();
    JOptionPane.showMessageDialog(this, "File Exported to " + f.getAbsolutePath(),
    "Success", JOptionPane.INFORMATION_MESSAGE);
    File opn = new File("Student Results/" + exam  + "_"+ level + "_" + year + ".xls");
    Desktop.getDesktop().open(opn);

  } catch (Exception se) {
    JOptionPane.showMessageDialog(this, se,
    "Error", JOptionPane.ERROR_MESSAGE);
  }
}
4

1 回答 1

3

这个 MSDN提供了几种方法(组策略或注册表操作)来说明如何抑制警告,但我认为这两种方法都不是特别实用。

我建议改为制作 CSV,因为您只是在编写文件。这些也由 Excel 打开。我相信你所要做的就是\t在你的代码中用逗号代替你的两个 s 。

于 2012-10-25T14:22:10.337 回答