读取excel文件,然后也可以生成excel文件,用java实现,不废话了,直接贴代码和结果。补充一下这个需要引入一个包,要下载一个poi-3.0.jar(直接点击就可以下载)文件。下载完之后就加到classpath就能编译通过,然后就行了。。
我还是说一下步骤吧。。先创建一个工作簿对象new HSSFWorkbook(new FileInputStream(filepath)),然后在创建工作表 workbook.getSheetAt(0)0表示sheet1,也可以直接用getSheet("Sheet1")这个参数可以是工作表名,然后在遍历所有的单元格,并读取数据,遍历的时候要注意单元格的格式,有两种,分为数字和字符串,所以要进行判断,额,r.getCell((short)j).getCellType() == 1,这个是字符串用getStringCellValue()获取,然后如果是getCellType()是0的话,则是数字内容,用getNumericCellValue()获取,然后读取excel文件结束了。。。。
具体创建excel文件的方法也是差不多。。先createSheet()创建工作表,然后不断的createRow(),createCell()创建单元行和列。。然后用输出流直接输出就行了。。。
package socket; import java.io.*; import org.apache.poi.hssf.usermodel.*; public class ReaderWriterFile { public String readExcelFile(String filename) { StringBuffer result = new StringBuffer(); String fileToBeRead = filename; // 创建对Excel工作簿文件的引用 HSSFWorkbook workbook = null; try { workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead)); // 创建对工作表的引用。 HSSFSheet sheet = workbook.getSheetAt(0); // HSSFSheet sheet = workbook.getSheet("Sheet1"); // 便利所有单元格,读取单元格 int row_num = sheet.getLastRowNum(); for (int i = 0; i < row_num; i++) { HSSFRow r = sheet.getRow(i); int cell_num = r.getLastCellNum(); for (int j = 0; j < cell_num; j++) { //System.out.println(r.getCell((short)j).getCellType()); if(r.getCell((short)j).getCellType() == 1){ result.append(r.getCell((short) j).getStringCellValue()); }else{ result.append(r.getCell((short) j).getNumericCellValue()); } result.append("\t"); } result.append("\n"); } } catch (FileNotFoundException e) { System.out.println("文件没找到 : " + e); } catch (IOException e) { System.out.println("已运行IO异常: " + e); } return result.toString(); } public void writeExcel(String path, String content) { String outputFile = path; String data = content; try { // 创建新的Excel 工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); // 在Excel工作簿中建一工作表,其名为缺省值 HSSFSheet sheet = workbook.createSheet(); String[] rows = data.split("\n"); for (int i = 0; i < rows.length; i++) { HSSFRow row = sheet.createRow((short) i); String[] cells = rows[i].split("\t"); for (int j = 0; j < cells.length; j++) { HSSFCell cell = row.createCell((short) j); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue(cells[j]); } } // 新建一输出文件流 FileOutputStream fOut = new FileOutputStream(outputFile); // 把相应的Excel 工作簿存盘 workbook.write(fOut); fOut.flush(); // 操作结束,关闭文件 fOut.close(); System.out.println(path + "文件生成完毕..."); } catch (FileNotFoundException e) { System.out.println("文件没找到 : " + e); } catch (IOException e) { System.out.println("已运行IO异常 : " + e); } } public String readWordFile(String filename) { return ""; } public static void main(String[] arg) { ReaderWriterFile rw = new ReaderWriterFile(); String res = rw.readExcelFile("E:/三国将领聚类.xls"); System.out.println(res); rw.writeExcel("D:\\out.xls", res); } }