将括号放在Excel公式的文件名旁边

时间:2018-08-24 07:38:49

标签: java string swing apache-poi

我的项目基于Apache POI,我正在尝试在单元格上使用公式。 我的公式如下。

sheet7.createRow(0).createCell(0).setCellFormula("+'C:\\Users\\Desktop\\[Test.xlsx]Average_Graph'!A2");

我使用的是JFileChooser,它允许用户选择文件。因此,每次使用该程序时,文件路径都会更改。

从JFileChooser,我得到的文件路径如下。

 String filepath= "C:\\Users\\Desktop\\Sheet.xlsx"`

为了正确使用公式,文件路径应采用以下格式。

"C:\\Users\\Desktop[Sheet.xlsx]"

如何更改从JFileCHooser获取的字符串以正确运行公式?

3 个答案:

答案 0 :(得分:5)

如果您有JFileChooser,则有一个File对象,而不仅仅是String

并且您应该始终使用FilePaths API来独立于操作系统

File f = jFileChooser.getSelectedFile();
String path = f.getParent();
String name = f.getName();

String newFormat = String.format("%s[%s]", path, name);

答案 1 :(得分:3)

据我了解,您可以从文件选择器中以字符串形式获取路径。因此,在您的示例中,您可以执行以下操作:

   String filepath= "C:\\Users\\Desktop\\Sheet.xlsx"
   Path path = Paths.get(filepath);
   String result=path.getParent()+"["+path.getFileName()+"]";

结果将是您的新字符串,其中包含用大括号括起来的文件

或者其他解决方案将使用文件

  File f=new File(filepath);
  String result=f.getParent()+"["+f.getName()+"]";

答案 2 :(得分:1)

只需拆分父级目录名称和文件名,并在文件名周围加上字符“ [”和“]”:

    File select = fileC.getSelectedFile();
    String filepath = select.getParentFile().getAbsolutePath()+"["+select.getName()+"]";

* EDIT我理解错误的问题,所以我想到了错误的问题;