gpt4 book ai didi

java - 我正在尝试使用 java 将多个 csv 文件作为不同的工作表合并到一个 Excel 工作簿中

转载 作者:行者123 更新时间:2023-12-02 06:19:13 33 4
gpt4 key购买 nike

我可以使用下面的java代码为一个Excel工作簿中的文件夹中存在的不同.csv文件创建工作表,但我将所有csv文件数据的数据获取到单个工作表中。我无法将与原始 .csv 文件相同的数据获取到指定的工作表中

public class CreateExlFile22{
public static void main(String[]args){
try{
HSSFWorkbook workbook=new HSSFWorkbook();


File folder = new File("F:/csvfiles/");
File[] listOfFiles = folder.listFiles();

for (File file : listOfFiles) {
if (file.isFile()) {
System.out.println(file.getName());




String thisline;
ArrayList<String> al = null;
ArrayList<ArrayList<String>> arlist = new ArrayList<ArrayList<String>>();

HSSFSheet sheet = workbook.createSheet(file.getName());

FilenameFilter filter = new FilenameFilter()
{
@Override public boolean accept(File dir, String name)
{
return name.endsWith(".csv");
}
};


File file1[]=folder.listFiles(filter);


for(int r=0;r<file1.length;r++){
File currentFile=file1[r];


FileInputStream fis = new FileInputStream(currentFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
while ((thisline = br.readLine()) != null) {
al = new ArrayList<String>();
String strar[] = thisline.split(",");

for (int j = 0; j < strar.length; j++) {


al.add(strar[j]);
}

arlist.add(al);
//i++;

}

fis.close();


for (int k = 0; k < arlist.size(); k++) {
ArrayList<String> ardata = (ArrayList<String>) arlist.get(k);
HSSFRow row = sheet.createRow((short) k);

for (int p = 0; p < ardata.size(); p++) {

HSSFCell cell = row.createCell((short) p);
cell.setCellValue(ardata.get(p).toString());
}
}

FileOutputStream fileOut = new FileOutputStream("F://NewWBFile.xls");
workbook.write(fileOut);
fileOut.flush();
fileOut.close();
br.close();


}


}

}


System.out.println("Your excel file has been generated!");

} catch ( Exception ex ) {
System.out.println(ex);

}
}
}

最佳答案

public class csvxls{
public static void main(String[]args){
try{

File folder = new File("F:/csvfiles/");
File[] listOfFiles = folder.listFiles();
HSSFWorkbook workbook=new HSSFWorkbook();

for (File file : listOfFiles) {


if (file.isFile()) {

String thisline;
ArrayList<String> al = null;
ArrayList<ArrayList<String>> arlist = new ArrayList<ArrayList<String>>();

HSSFSheet sheet = workbook.createSheet(file.getName());
FileInputStream fis = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));

while ((thisline = br.readLine()) != null) {
al = new ArrayList<String>();
String strar[] = thisline.split(",");

for (int j = 0; j < strar.length; j++) {
for (int k = 0; k < arlist.size(); k++) {

ArrayList<String> ardata = (ArrayList<String>) arlist.get(k);

HSSFRow row = sheet.createRow((short) k);


for (int p = 0; p < ardata.size(); p++) {

HSSFCell cell = row.createCell((short) p);
cell.setCellValue(ardata.get(p).toString());

}
}

al.add(strar[j]);

}

arlist.add(al);
}

fis.close();
FileOutputStream fileOut = new FileOutputStream("F://NewWBFile.xls");
workbook.write(fileOut);
fileOut.flush();
fileOut.close();
br.close();
}
}

System.out.println("Your excel file has been generated!");

} catch ( Exception ex ) {
System.out.println(ex);

}
}
}

关于java - 我正在尝试使用 java 将多个 csv 文件作为不同的工作表合并到一个 Excel 工作簿中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21160589/

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