Java 通过读取excel工作表生成文件
有一个excel文件,其中一列中有许多文件名。我需要编写一个java代码,读取这些文件名并在目的地生成相同的文件名。有人能帮我吗?Java 通过读取excel工作表生成文件,java,excel,file,Java,Excel,File,有一个excel文件,其中一列中有许多文件名。我需要编写一个java代码,读取这些文件名并在目的地生成相同的文件名。有人能帮我吗?import java.io.file; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.
import java.io.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Test {
public static void main(String[] args) throws IOException {
try {
FileInputStream file = new FileInputStream(new File("C:\\test.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
//Iterate through each rows from first sheet
Iterator<Row> rowIterator = sheet.iterator();
while(rowIterator.hasNext()) {
Row row = rowIterator.next();
//For each row, iterate through each columns
Iterator<Cell> cellIterator = row.cellIterator();
while(cellIterator.hasNext()) {
Cell cell = cellIterator.next();
System.out.print(cell.getStringCellValue() + "\t\t");
FileOutputStream outFile =new FileOutputStream(new File("C:\\"+cell.getStringCellValue()));
workbook.write(outFile);
}
System.out.println("");
}
file.close();
/* FileOutputStream outFile =new FileOutputStream(new File("C:\\update.xls"));
workbook.write(outFile);*/
//outFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.util.Iterator;
导入org.apache.poi.hssf.usermodel.HSSFSheet;
导入org.apache.poi.hssf.usermodel.HSSFWorkbook;
导入org.apache.poi.ss.usermodel.Cell;
导入org.apache.poi.ss.usermodel.Row;
导入org.apache.poi.ss.usermodel.Sheet;
导入org.apache.poi.ss.usermodel.工作簿;
导入org.apache.poi.xssf.usermodel.xssfheet;
导入org.apache.poi.xssf.usermodel.xssf工作簿;
公开课考试{
公共静态void main(字符串[]args)引发IOException{
试一试{
FileInputStream文件=新的FileInputStream(新文件(“C:\\test.xls”);
HSSF工作簿=新的HSSF工作簿(文件);
HSSFSheet sheet=工作簿。getSheetAt(0);
//从第一张图纸开始遍历每行
迭代器rowIterator=sheet.Iterator();
while(roweiterator.hasNext()){
行=行迭代器。下一步();
//对于每一行,遍历每一列
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext()){
Cell=cellIterator.next();
System.out.print(cell.getStringCellValue()+“\t\t”);
FileOutputStream outFile=新的FileOutputStream(新文件(“C:\\”+cell.getStringCellValue());
工作簿。写入(输出文件);
}
System.out.println(“”);
}
file.close();
/*FileOutputStream outFile=新的FileOutputStream(新文件(“C:\\update.xls”));
工作簿。写入(输出文件)*/
//outFile.close();
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
有一些库可用于读取excel文件。在我的例子中,我选择了可以免费下载然后添加到项目中的。添加后,请创建文档:
HSSFWorkbook workbook = new HSSFWorkbook( new FileInputStream("filename.xls") );
或者,如果是2007年或更高版本的excel文档:
XSSFWorkbook workbook = new XSSFWorkbook( new FileInputStream("filename.xlsx") );
现在,您可以遍历每一行并读取第一列:
for( Row row : workbook.getSheetAt(0) ) // Go through each row in sheet 0
System.out.println( row.getCell(0).getStringCellValue() );
公开课考试{
public static void main(String[] args) throws IOException {
try {
FileInputStream file = new FileInputStream(new File("D:\\sampleFileNames.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(file);
FileOutputStream outFile= null;
HSSFSheet sheet = workbook.getSheetAt(0);
//Iterate through each rows from first sheet
Iterator<Row> rowIterator = sheet.iterator();
while(rowIterator.hasNext()) {
Row row = rowIterator.next();
//For each row, iterate through each columns
Iterator<Cell> cellIterator = row.cellIterator();
Cell cell = cellIterator.next();
File file1 = new File("D:\\Ganesh\\"+cell.getStringCellValue().toString());
if(!file1.createNewFile()) {
System.out.println("File already exists");
/* Cell cell = cellIterator.next();
System.out.print(cell.getStringCellValue() + "\t\t");
outFile =new FileOutputStream(new File("D:\\Ganesh\\"+cell.getStringCellValue().toString()));
//workbook.write(outFile);
System.out.println("");
}
file.close();
outFile.close();
/* FileOutputStream outFile =new FileOutputStream(new File("C:\\update.xls"));
workbook.write(outFile);*/
//outFile.close();
}
}
}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
publicstaticvoidmain(字符串[]args)引发IOException{
试一试{
FileInputStream文件=新的FileInputStream(新文件(“D:\\sampleFileNames.xls”);
HSSF工作簿=新的HSSF工作簿(文件);
FileOutputStream输出文件=null;
HSSFSheet sheet=工作簿。getSheetAt(0);
//从第一张图纸开始遍历每行
迭代器rowIterator=sheet.Iterator();
while(roweiterator.hasNext()){
行=行迭代器。下一步();
//对于每一行,遍历每一列
迭代器cellIterator=row.cellIterator();
Cell=cellIterator.next();
File file1=新文件(“D:\\Ganesh\\”+cell.getStringCellValue().toString());
如果(!file1.createNewFile()){
System.out.println(“文件已存在”);
/*Cell=cellIterator.next();
System.out.print(cell.getStringCellValue()+“\t\t”);
outFile=newfileoutputstream(新文件(“D:\\Ganesh\\”+cell.getStringCellValue().toString());
//工作簿。写入(输出文件);
System.out.println(“”);
}
file.close();
outFile.close();
/*FileOutputStream outFile=新的FileOutputStream(新文件(“C:\\update.xls”));
工作簿。写入(输出文件)*/
//outFile.close();
}
}
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}嘿,这真的很有帮助。非常感谢……:)谢谢你的宝贵意见。我将利用它:)