JAVA 讀取文件夾中的文件名,生成EXCEL表格!

JAVA 讀取文件夾中的文件名,生成EXCEL表格!
原來文件的格式:
在這裏插入圖片描述
代碼如下:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.HorizontalAlignment;

public class ShengchengExcel {
   
//創建表頭
public static void createTitle(HSSFWorkbook workbook,HSSFSheet sheet){
   
	HSSFRow row = sheet.createRow(0);
	//列寬,第一個參數爲第幾列,第二個參數是寬度,基本單位爲1/256個字符寬度
	//要想得到準確的值,按下面方式直接寫就可以
	sheet.setColumnWidth(0, (int)(20+0.72)*256);//實際寬度爲20
	sheet.setColumnWidth(1, (int)(30+0.72)*256);//實際寬度爲30
	
	//設置表頭格式
	HSSFCellStyle style = workbook.createCellStyle();
	HSSFFont font = workbook.createFont();
	font.setBold(true);//加粗
	style.setAlignment(HorizontalAlignment.CENTER);//居中
	style.setFont(font);
	
	//設置表頭
	HSSFCell cell;
	cell = row.createCell(0);//標明第幾列
	cell.setCellValue("字名");//表頭
	cell.setCellStyle(style);
	
	cell = row.createCell(1);
    cell.setCellValue("書法家");
    cell.setCellStyle(style);

    cell = row.createCell(2);
    cell.setCellValue("書體");
    cell.setCellStyle(style);

    cell = row.createCell(3);
    cell.setCellValue("朝代");
    cell.setCellStyle(style);

    cell = row.createCell(4);
    cell.setCellValue("來源");
    cell.setCellStyle(style);

    cell = row.createCell(5);
    cell.setCellValue("文件格式");
    cell.setCellStyle(style);
}

//生成Excel文件
public static void buildExcelFile(String filename,HSSFWorkbook workbook) throws Exception{
   
	FileOutputStream fos = new FileOutputStream(filename);
	workbook.write(fos);
	workbook.close();
	
}

//把想要的數據放到Excel表格中
public static void main(String[] args) throws Exception{
   
	String path = "D:\\書法行\\測試用";
	File file = new File(path);
	//list()方法是返回某個目錄下的所有文件和目錄的文件名,返回的是String數組
	//listFiles()方法是返回某個目錄下所有文件和目錄的絕對路徑,返回的是File數組
	File[] fs = file.listFiles();
	HSSFWorkbook workbook = new HSSFWorkbook();
	HSSFSheet sheet = workbook.createSheet("字庫表");
	createTitle(workbook,sheet);
	int rowNum = 1;
	for(File f : fs){
   
		//java中的isDirectory()是檢查一個對象是否是文件夾。返回值是boolean類型的。如果是則返回true,否則返回false。
		if(!f.isDirectory()){
   
			String s = f.getName();
			//split():字符串分隔符,默認加“\\”,這裏的意思就是文件名被“_”分開
			String[] strArr = s.split("\\_");
			HSSFRow row = sheet.createRow(rowNum);
			for(int i = 0;i<strArr.length;i++){
   
				row.createCell(i).setCellValue(strArr[i]);
			}
			rowNum++;
		}
	}
	String fileName = "D:\\file\\字庫.xls";
	//生成Excel文件
	buildExcelFile(fileName,workbook);
	System.out.println("生成完成");
}

}

處理好的格式:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章