JAVA实现Excel的读写--poi
生活随笔
收集整理的這篇文章主要介紹了
JAVA实现Excel的读写--poi
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上一篇為大家介紹了通過xls.jar的方式生成Excel的方法,本篇就為大家再介紹一下通過poi方式實現Excel文件的讀寫操作,內容很簡單,代碼注釋很清晰。
1、生成Excel文件:
import java.io.File; import java.io.FileOutputStream;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class poi_write {public static void main(String[] args) {final String [] str = {"id", "name", "sex"};//創建Excel工作薄HSSFWorkbook workbook = new HSSFWorkbook();//創建Excel工作表HSSFSheet sheet = workbook.createSheet();//創建第一行HSSFRow row = sheet.createRow(0);HSSFCell cell = null;//添加表頭for (int i = 0; i < str.length; i++) {cell = row.createCell(i);cell.setCellValue(str[i]);}//追加數據for (int i = 1; i <= 10; i++) {HSSFRow rows = sheet.createRow(i);HSSFCell cell_id = rows.createCell(0);cell_id.setCellValue(i+"");HSSFCell cell_name = rows.createCell(1);cell_name.setCellValue("name:"+i);HSSFCell cell_sex = rows.createCell(2);cell_sex.setCellValue("男");}//文件保存路徑File file = new File("E:/cnblogs/poi_text.xls");try{if(!file.exists()){file.createNewFile();}FileOutputStream fileOut = new FileOutputStream(file);//創建一個文件輸出流對象 workbook.write(fileOut);fileOut.close();//關閉輸出流對象}catch (Exception e) {e.printStackTrace();}System.out.println("Excel文件已生成");}}2、讀取Excel文件:
import java.io.File; import java.io.IOException;import org.apache.commons.io.FileUtils; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class poi_reading {public static void main(String[] args) {final File file = new File("E:/cnblogs/poi_text.xls");if(file.exists()){try {HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(file));//workbook.getSheet("Sheet0");獲得指定的工作表//HSSFSheet sheet = workbook.getSheet("Sheet0");//workbook.getSheetAt(0);默認獲得第一個工作表HSSFSheet sheet = workbook.getSheetAt(0);int firstRowNum = 0;//獲得當前sheet最后一行行號int lastRowNum = sheet.getLastRowNum();for (int i = firstRowNum; i <= lastRowNum; i++) {HSSFRow row = sheet.getRow(i);//獲得當前行最后單元格列號int lastCellNum = row.getLastCellNum();for (int j = 0; j < lastCellNum; j++) {HSSFCell cell = row.getCell(j);String value = cell.getStringCellValue();System.out.print(value+" ");}System.out.println("");}} catch (IOException e) {e.printStackTrace();}}else{System.out.println("讀取文件不存在");}}}好了,基本的方法已經為大家介紹完畢,更好的效果展示就靠大家自己摸索了。
不知道大家發現一個問題沒?我們生成的Excl文件都是.xls結尾,.xls是office97-2003的版本,而對于2007以后的版本則是以.xlsx結尾。那如何生成高版本的Excel呢?我們不能僅僅是修改一下File文件的后綴名,我們這里需要使用XSSFWorkbook進行創建workbook,然后把剩余的HSSF開頭去掉就可以了。不過在這里需要說明的就是,我們不知道用戶使用的是低版本還是高版本,所以我們建議大家都使用HSSFWorkbook來進行創建以.xls結尾的Excel文件。
如有錯誤,還望指正。謝謝
轉載于:https://www.cnblogs.com/AndroidJotting/p/4422950.html
總結
以上是生活随笔為你收集整理的JAVA实现Excel的读写--poi的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hive 行列转换
- 下一篇: 【c#】RabbitMQ学习文档(一)H