本文讲解内容,使用Java程序,批量读取指定文件夹中的文件名称,生成Excel表格!
1、原来文件的格式
2、Java代码如下
- 生成表头方法
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文件方法
/**
* 生成Excel文件
*
* @param filename 文件名
* @param workbook 表格输出工具
* @throws Exception 输入异常
*/
public static void buildExcelFile(String filename, HSSFWorkbook workbook) throws Exception {
FileOutputStream fos = new FileOutputStream(filename);
workbook.write(fos);
workbook.close();
}
- 将指定文件夹中的数据导入Excel并输入表格文件
/**
* 将指定文件夹中的数据导入Excel并输入表格文件
*
* @param path 指定文件夹位置
* @throws Exception 异常输出
*/
public static void importData(String path) throws Exception {
//指定文件夹文件
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("生成完成");
}
- 主方法测试
public static void main(String[] args) throws Exception {
try {
String path = "D:\test\files";
importData(path);
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
- 导包
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import java.io.File;
import java.io.FileOutputStream;
3、运行成功后结果
所有你想象的一切,皆是现实!