gpt4 book ai didi

java - 如何使用 java 创建 Excelsheet 中数据的文件夹和子文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:45 27 4
gpt4 key购买 nike

我正在尝试使用 Excel 的内容创建文件夹。我能够读取包含正确数据的 Excel 文件,但无法从该数据创建文件夹。

到目前为止我编写的代码:

public static void main(String[] args) {

try {

InputStream ExcelFileToRead = new FileInputStream("C:\\Users\\430427\\Desktop\\vivek.xlsx");
XSSFWorkbook wb = new XSSFWorkbook(ExcelFileToRead);
XSSFWorkbook test = new XSSFWorkbook();
XSSFSheet sheet = wb.getSheetAt(0);
XSSFRow row;
XSSFCell cell;
Iterator rows = sheet.rowIterator();
while (rows.hasNext()) {

row = (XSSFRow) rows.next();
Iterator cells = row.cellIterator();
int i = 0;

while (cells.hasNext()) {

cell = (XSSFCell) cells.next();
XSSFCell cell2 = row.getCell(i);
i++;
if(cell2 !=null){
//if(cell2.toString().replaceAll("\\s", "").length()>0)
System.out.print("/"+cell2);
String dirName = "C:\\Users\\430427\\Desktop\\"+cell2;
new File(dirName).mkdir();
}

}
System.out.println();
i = 0;
}

System.out.println("\n");

}
catch (IOException ex) {
ex.printStackTrace();
}

}

最佳答案

https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCell.html

cell2 是 XSSFCell 对象,而不是字符串。

尝试在 String dirName = "C:\\Users\\430427\\Desktop\\"+cell2; 中使用 cell2.getStringCellValue() 来获取字符串值。

我建议您应该从代码中获取用户配置文件,而不是对路径进行硬编码。

<小时/>

编辑:

apache poi 中没有columnIterator。所以我想出了另一种方法。这段代码仅对您的情况有意义(第一列只有一行,最后一列只有一行或多行),就像您在评论中所说的那样:

The data is like CALEG in A1,101 in B1,html in C1,Title A,Title B,Title C,Title D in D1,D2,D3,D4 respectively.

我希望能给您一些实现您需要的想法。

public static void main(String[] args) {

XSSFWorkbook wb = null;

try {
// input file path here
InputStream ExcelFileToRead = new FileInputStream("D:\\test.xlsx");
wb = new XSSFWorkbook(ExcelFileToRead);
XSSFSheet sheet = wb.getSheetAt(0);
XSSFRow row;
XSSFCell cell;
Iterator<Row> rows = sheet.rowIterator();

// destination path here
String dirName = "D:\\tmp";
String parentPath = null;

int lastCellIdx = 0;

while (rows.hasNext()) {

row = (XSSFRow) rows.next();

if (lastCellIdx != 0) {

new File(parentPath + "\\" + row.getCell(lastCellIdx).toString()).mkdir();

} else {

Iterator<Cell> cells = row.cellIterator();

while (cells.hasNext()) {
cell = (XSSFCell) cells.next();

if (cell != null) {
dirName = dirName + "\\" + cell.toString();
}
}

lastCellIdx = row.getLastCellNum() - 1;
parentPath = new File(dirName).getParent();
new File(dirName).mkdirs();
}

}

} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
wb.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

关于java - 如何使用 java 创建 Excelsheet 中数据的文件夹和子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29003628/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com