概述
我在这个博客和IT领域都很新。我有一个问题,将csv文件中的值复制到现有的xls文件中。我正在使用Apache POI。
我有两个csv文件和两个现有的xls文件output0.xls和output1.xls为各自的csv文件。我试图将值从第一个csv文件复制到output0.xls和第二个csv文件到output1.xls.I ve做了那个代码,并且它工作正常
但问题是,将第一个csv文件的值从第二个csv文件放到output.x.xls后,我试图将值复制到output1.xls,它将第一个csv文件的值与第二个csv文件相加,将两个文件的值写入到output1.xls。
我无法找出主要问题在哪里。请任何人尽快帮助我....否则我会面临一个大问题。
点击
代码已经使用了
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class Demo {
// FileOutputStream fileOut=null;
//FileInputStream fis=null;
public static void main(String[] args) throws IOException {
/*File f=new File("c:\");
// return boolean-->System.out.println(f.isDirectory());
File[]files=f.listFiles();*/
String thisline;
ArrayList al = null;
ArrayList> arlist = new ArrayList>();
String libRoot=new File(".").getAbsolutePath();
libRoot=libRoot.replaceAll("\\", "/");
File f=new File(libRoot+"/result");
FilenameFilter filter = new FilenameFilter()
{
@Override public boolean accept(File dir, String name)
{
return name.endsWith(".csv");
}
};
File file[]=f.listFiles(filter);
for(int r=0;r
File currentFile=file[r];
FileInputStream fis = new FileInputStream(currentFile);
//DataInputStream myInput = new DataInputStream(fis);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
while ((thisline = br.readLine()) != null) {
al = new ArrayList();
String strar[] = thisline.split(",");
for (int j = 0; j < strar.length; j++) {
al.add(strar[j]);
}
arlist.add(al);
//i++;
}
fis.close();
HSSFWorkbook hwb = new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("new sheet"+r);
for (int k = 0; k < arlist.size(); k++) {
ArrayList ardata = (ArrayList) arlist.get(k);
HSSFRow row = sheet.createRow((short) k);
for (int p = 0; p < ardata.size(); p++) {
//System.out.print(ardata.get(p));
HSSFCell cell = row.createCell((short) p);
cell.setCellValue(ardata.get(p).toString());
}
}
FileOutputStream fileOut = new FileOutputStream(libRoot+"/result/output"+r+".xls");
hwb.write(fileOut);
fileOut.flush();
fileOut.close();
br.close();
//hwb=null;
}
}
}
最后
以上就是秀丽流沙为你收集整理的java csv 多个sheet_使用Apache POI在java中复制多个csv到xls文件的问题的全部内容,希望文章能够帮你解决java csv 多个sheet_使用Apache POI在java中复制多个csv到xls文件的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复