1、Excel 文件的导入与导出一、POI 方式1、 Excel 文件导入private File excelFile; /struts2 上传文件方式FileInputStream fis=new FileInputStream(excelFile); /读取所上传的文件POIFSFileSystem pfs=new POIFSFileSystem(fis); /把上传文件转换为POI文件HSSFWorkbook workbook=new HSSFWorkbook(pfs); /把上传文件的内容写入工作簿HSSFSheet sheet=workbook.getSheetAt(0); /从工作簿中
2、读取数据到工作表中Iterator rows=sheet.rowIterator();/从工作表中读取每一行的数据while(rows.hasNext() /循环读取每行HSSFRow hRow=(HSSFRow)rows.next();Iterator cells=hRow.cellIterator();/从每行数据中读取每一列数据while(cells.hasNext()/循环读取每列HSSFCell hCell=(HSSFCell)cells.next();switch(hCell.getCellType()/判断每列的数据类型,然后输出数据case HSSFCell.CELL_TYPE
3、_NUMERIC:System.out.println(hCell.getNumericCellValue();break;case HSSFCell.CELL_TYPE_STRING:System.out.println(hCell.getStringCellValue();break;case HSSFCell.CELL_TYPE_BOOLEAN:System.out.println(hCell.getBooleanCellValue();break;case HSSFCell.CELL_TYPE_FORMULA:System.out.println(hCell.getCellFormul
4、a();break;default:System.out.print(“The File is Empty or Error.“);break;2、 Excel 文件导出String tableHeader =“,“,“,“,“,/标题名short cellNum = (short) tableHeader.length; /列数HSSFWorkbook workbook = new HSSFWorkbook();/新建工作簿HSSFSheet sheet=workbook.createSheet(“sheet1“);/新建名为sheet1 的工作表HSSFRow row = null; /新
5、建工作表中的行HSSFCell cell = null; /新建工作表中的列HSSFCellStyle style = workbook.createCellStyle();/工作表中除标题外的样式style.setAlignment(HSSFCellStyle.ALIGN_CENTER); /设置文字居中HSSFCellStyle style1=workbook.createCellStyle();/工作表中标题行的样式Style1.setAlignment(HSSFCellStyle.ALIGN_CENTER); /设置文字居中HSSFFont font = workbook.create
6、Font();/工作表中标题行的字体格式HSSFHeader header = sheet.getHeader();/为工作表新建一个 header.setCenter(“);/设置row = sheet.createRow(0); /创建标题行row.setHeight(short) 400); /设置每行的高度for (int i = 0; i cellNum; i+) /循环设置标题行每列的标题cell = row.createCell(short) i); /创建新列cell.setCellValue(tableHeaderi); /为新的列添加标题cell.setEncoding(H
7、SSFCell.ENCODING_UTF_16); /设置每列的字符编码格式sheet.setColumnWidth(short) i, (short) 2500); /设置列的宽度font.setColor(HSSFFont.COLOR_RED); /设置字体颜色为红色font.setBoldweight(short)250); /设置字体大小font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); /设置粗体style1.setFont(font); /把前面设置的字体样式添加到每列样式中cell.setCellStyle(style1); /为每列添加样
8、式for (int i = 0; i 数据长度; i+) /循环读取每行每列的值与读取标题行数据一样.二、JXL 方式1、 创建一个简单的Excel文件/新建一个名为test的Excel文件WritableWorkbook book = Workbook.createWorkbook(new File(“test.xls“);/新建一个名为”第一页”的第一个工作表WritableSheet sheet=book.createSheet(“第一页“,0);/在工作表中第1行第1列的位置写入字符数据”test”Label label=new Label(0,0,“test“);sheet.addC
9、ell(label);/在工作表中第1行第2列的位置写入数字数据91627jxl.write.Number number=new jxl.write.Number(1,0,91627);sheet.addCell(number);book.write();book.close();2、 读取一个简单的Excel文件/获取一个名为”test” 的Excel文件Workbook book = Workbook.getWorkbook(new File(“test.xls“);/获取Excel 文件的工作第一个工作表Sheet sheet = book.getSheet(0);/获取工作表中第1行第
10、1列的数据Cell cell1 = sheet.getCell(0,0);/获取工作表中第1行第2列的数据Cell cell2=sheet.getCell(1,0);/取出第1行第1列的数据String result1 = cell1.getContents();/取出第1行第2列的数据String result2=cell2.getContents();/输出数据System.out.println(result1+“t“+result2);book.close();3、 修改一个简单的Excel文件/获取一个名为”test” 的Excel文件Workbook bk=Workbook.getWorkbook(new File(“test.xls“);/重新建立一个Excel 文件WritableWorkbook book=Workbook.createWorkbook(new File(“test.xls“), bk);/为 Excel文件添加一个名为” 第二页”工作表WritableSheet sheet=book.createSheet(“第二页“, 1);/为工作表第1行第1列添加字符数据”第二页测试数据”sheet.addCell(new Label(0,0,“第二页测试数据“ );book.write();book.close();