我的项目基于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获取的字符串以正确运行公式?
答案 0 :(得分:5)
如果您有JFileChooser
,则有一个File
对象,而不仅仅是String
并且您应该始终使用File
或Paths
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我理解错误的问题,所以我想到了错误的问题;