我让我的project.There的一个问题是与创建一个图表和XLS文件的细胞类型的宏一个xls文件是“text'.I必须做出多个复制该文件的副本与宏,然后从一个名为“结果”我要取的CSV文件,并通过一个和通过宏观我要创建图表corrosponding那些values.I把值那些重复的XLS文件一个文件夹知道如何从csv获取值并将其放到一个xls文件中。我也知道可以创建图表的宏的代码。问题与宏时,将CSV为XLS
但问题是,当我发送值的重复文件不显示macro.I正在使用的代码如下所示。
任何人都可以修改我的代码来获得CSV文件中的值可以显示在macro.PLEASE HELP ME那些重复的XLS文件。
预先日Thnx ......
包com.hp.io;
进口java.io.BufferedInputStream中; import java.io.BufferedOutputStream; import java.io.BufferedReader; 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;
公共类CSVtoXLS {
// FileOutputStream fileOut=null;
//FileInputStream fis=null;
公共静态无效的主要(字串[] args)抛出IOException异常{
String thisline;
ArrayList<String> al = null;
ArrayList<ArrayList<String>> arlist = new ArrayList<ArrayList<String>>();
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.length;r++){
String r1=libRoot+"/result/output"+r+".xls";
arlist.clear();
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>();
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");
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++) {
//System.out.print(ardata.get(p));
HSSFCell cell = row.createCell((short) p);
cell.setCellValue(ardata.get(p).toString());
}
}
//if(currentFile == file[0]){
FileOutputStream fileOut = new FileOutputStream(r1);
hwb.write(fileOut);
//hwb.write(fileOut);
//}
//hwb.write(fileOut);
fileOut.flush();
fileOut.close();
br.close();
System.out.println("conversion is done");
//hwb=null;
}
//else if (currentFile == file[1]) {
//fileOut = new FileOutputStream(libRoot+"/result/output.xls");
//hwb.write(fileOut);
//fileOut.flush();
//fileOut.close();
//hwb=null;
}
}
是的。你认为什么是完全相同的。唯一如果我在结果文件夹中有2个csv文件,它从现有的xls文件复制2个带有宏的xls文件,并将那些2个csv的值复制到2个xls文件与宏观。 你能帮我吗?在此先感谢....保重... – Basudev 2011-06-16 05:14:36
恐怕我不知道你在问什么,对不起....我建议你编辑问题,使其更清楚哪里出错和哪里 – Gagravarr 2011-06-16 08:58:44