@author YHC
读取Excel和重写Excel
click me!!看创建Excel代码!!!!!<<<<=====创建测试的Excel是POI Excel 02[工作薄中不同类型的单元格]
//初始化输入流
InputStream inp = new FileInputStream("D:/workbook.xls");
//创建读取对应的文件生成对象
Workbook wb = WorkbookFactory.create(inp);
//得到第0个工作薄
Sheet sheet = wb.getSheetAt(0);
//得到第3行 小标从0开始,所以是2
Row row = sheet.getRow(2);
//得到第三行第4个单元格 4D 小标从0开始所以是三
Cell cell = row.getCell(3);
//查看该单元格是否定义,如果没有定义返回NULL
//,否则返回一个逻辑上的单元格,如果没有则创建
//??为什么需要先判断为空,因为如果该单元格已经
//存在而且已经定义,如果你在创建,原来的单元格
//将会被你重新创建的单元格覆盖,这样做可以节约
//你的空间,因为没有重新创建对象
if (cell == null)
cell = row.createCell(3);
//设置单元格的类型是String字符串文本类型
cell.setCellType(Cell.CELL_TYPE_STRING);
//设定值
cell.setCellValue("a test");
//重新写如文件
FileOutputStream fileOut = new FileOutputStream("D:/workbook.xls");
wb.write(fileOut);
fileOut.close();
运行后的效果图:
单元格中使用\n 换行符:
//创建Excel
Workbook wb = new HSSFWorkbook(); //or new XSSFWorkbook();
//创建工作薄
Sheet sheet = wb.createSheet();
//创建行
Row row = sheet.createRow(2);
//创建单元格
Cell cell = row.createCell(2);
//设置单元格中的值 使用有\n换行符
cell.setCellValue("Use \n with word wrap on to create a new line");
//如果你需要使用换行符,你需要设置
//单元格的样式wrap=true,代码如下:
CellStyle cs = wb.createCellStyle();
cs.setWrapText(true);
cell.setCellStyle(cs);
//增加行的高度以适应2行文本的高度,设置高度单位(像素)
row.setHeightInPoints((2*sheet.getDefaultRowHeightInPoints()));
//调整该列宽度适应内容
sheet.autoSizeColumn((short)2);
//写入文件
FileOutputStream fileOut = new FileOutputStream("ooxml-newlines.xlsx");
wb.write(fileOut);
fileOut.close();
运行后的效果图:
需要jar包:
以上如果有写错误的地方,请大家指出! thanks!!