poi读写excel表格
来源:互联网 发布:telnet远程端口 编辑:程序博客网 时间:2024/06/05 15:40
利用poi读取excel文件内容
import java.io.FileInputStream;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.DateUtil;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;public class PoiRead { public static void main(String[] args) { testReadExcel("d:/poi_test.xls"); } //编写读取的方法 public static void testReadExcel(String filepath) { try { // 读取Excel Workbook wb = new HSSFWorkbook(new FileInputStream(filepath)); // 获取sheet数目 for (int t = 0; t < wb.getNumberOfSheets(); t++) { Sheet sheet = wb.getSheetAt(t); Row row = null; int lastRowNum = sheet.getLastRowNum(); // 循环读取 for (int i = 0; i <= lastRowNum; i++) { row = sheet.getRow(i); if (row != null) { // 获取每一列的值 for (int j = 0; j < row.getLastCellNum(); j++) { Cell cell = row.getCell(j); String value = getCellValue(cell) ; if(!value.equals("")){ System.out.print(value + " | "); } } System.out.println(); } } } wb.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 获取单元格的值 * 设置获取日期的格式 * @param cell * @return */ private static String getCellValue(Cell cell) { Object result = ""; if (cell != null) { switch (cell.getCellTypeEnum()) { case STRING: result = cell.getStringCellValue(); break; case NUMERIC: //设置日期格式 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm"); double time = cell.getNumericCellValue(); Date date = DateUtil.getJavaDate(time); result= format.format(date); break; case BOOLEAN: result = cell.getBooleanCellValue(); break; case FORMULA: result = cell.getCellFormula(); break; case ERROR: result = cell.getErrorCellValue(); break; case BLANK: break; default: break; } } return result.toString(); }}
利用poi写入excel文件
import java.io.FileOutputStream;import java.io.IOException;import java.util.Date;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFCreationHelper;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.DateUtil;public class PoiWrite { public static void main(String[] args) throws IOException { // 创建工作薄 HSSFWorkbook workBook = new HSSFWorkbook(); // 在工作薄中创建一工作表 HSSFSheet sheet = workBook.createSheet(); // 在指定的索引处创建一行 // HSSFRow row = sheet.createRow(0); // 在指定的索引处创建一列(单元格) String[] head={"id","name","sex","createtime"}; String[] body={"userid","user","男,女"}; for (int i = 0; i <= 10; i++) { HSSFRow row = sheet.createRow(i); if(i==0) for(int j=0;j<head.length;j++){ //写入值 row.createCell(j).setCellValue(head[j]); } else for(int j=0;j<body.length+1;j++){ if(j<2) row.createCell(j).setCellValue(body[j]+i); else if(j==2) row.createCell(2).setCellValue(body[2].split(",")[(int)Math.floor(Math.random()*(body[2].split(",").length))]); else { HSSFCell cell = row.createCell(j); //设置时间 cell.setCellValue(new Date()); //判断是否为日期格式 System.out.println(DateUtil.isCellDateFormatted(cell)); //设置日期的格式 HSSFCellStyle style = workBook.createCellStyle(); //方法1:格式必须为 "m/d/yy h:mm" 或 "m/d/yy" //style.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm")); //方法2:利用 HSSFCreationHelper 对象 HSSFCreationHelper helper = workBook.getCreationHelper(); short fmt = helper.createDataFormat().getFormat("yy/MM/dd hh:mm:ss"); style.setDataFormat(fmt); //将格式赋给单元格 cell.setCellStyle(style); //再次判断是否为日期格式 System.out.println("再次判断的结果为:"+DateUtil.isCellDateFormatted(cell)); } } } // 新建一输出流并把相应的eHcel文件存盘 FileOutputStream fos = new FileOutputStream("d:/poi_test.xls"); workBook.write(fos); fos.flush(); //操作结束,关闭流 fos.close(); workBook.close(); System.out.println("文件生成"); } }
阅读全文