一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java實現導入導出Excel文件的方法(poi,jxl)

Java實現導入導出Excel文件的方法(poi,jxl)

2021-01-30 11:27少年錦陽 Java教程

這篇文章主要介紹了Java實現導入導出Excel文件的方法(poi,jxl),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

目前,比較常用的實現Java導入、導出Excel的技術有兩種Jakarta POI和Java Excel直接上代碼:

一,POI

POI是apache的項目,可對微軟的Word,Excel,Ppt進行操作,包括office2003和2007,Excl2003和2007。poi現在一直有更新。所以現在主流使用POI。

xls:

pom:

?
1
2
3
4
5
6
7
8
9
10
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.9</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.2</version>
</dependency>

導出:

  1. public class PoiCreateExcel { 
  2.  
  3.  public static void main(String[] args) { 
  4.   // 創建表頭 
  5.   String[] title = {"id","name","sex"}; 
  6.   //創建Excel工作薄 
  7.   HSSFWorkbook workbook = new HSSFWorkbook(); 
  8.   //創建一個工作表sheet 
  9.   HSSFSheet sheet = workbook.createSheet(); 
  10.   //創建第一行 
  11.   HSSFRow row = sheet.createRow(0); 
  12.   HSSFCell cell = null
  13.   // 插入第一行 
  14.   for (int i = 0; i < title.length; i++) { 
  15.    cell = row.createCell(i); 
  16.    cell.setCellValue(title[i]); 
  17.   } 
  18.   // 追加數據 
  19.   for (int i = 1; i < 10; i++) {// 這里的int 起始是1 也就是第二行開始 
  20.    HSSFRow nexTrow = sheet.createRow(i); 
  21.    HSSFCell cell2 = nexTrow.createCell(0); 
  22.    cell2.setCellValue("a"+i); 
  23.    cell2 = nexTrow.createCell(1); 
  24.    cell2.setCellValue("user"); 
  25.    cell2 = nexTrow.createCell(2); 
  26.    cell2.setCellValue("男"); 
  27.   } 
  28.   // 創建一個文件 
  29.   File file = new File("d:/poi.xls"); 
  30.   try { 
  31.    file.createNewFile(); 
  32.    // 將內容存盤 
  33.    FileOutputStream stream = FileUtils.openOutputStream(file); 
  34.    workbook.write(stream); 
  35.  
  36.    stream.close(); 
  37.   } catch (Exception e) { 
  38.    e.printStackTrace(); 
  39.   } 
  40.  } 

導入:

  1. public class PoiReadExcel { 
  2.  
  3.  public static void main(String[] args) { 
  4.  
  5.   // 引入需要解析的文件 
  6.   File file = new File("d:/poi.xls"); 
  7.   try { 
  8.    // 創建Excel 讀取文件內容 
  9.    HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(file)); 
  10.    /** 
  11.     * 第一種方式讀取Sheet頁 
  12.     */ 
  13. //   HSSFSheet sheet = workbook.getSheet("Sheet0"); 
  14.    /** 
  15.     * 第二種方式讀取Sheet頁 
  16.     */ 
  17.    HSSFSheet sheet = workbook.getSheetAt(0); 
  18.    int firstRowNum = 0;// 起始行第0行 
  19.    int lasrRowNum = sheet.getLastRowNum();// 一直讀到最后一行 
  20.    for (int i = 0; i < lasrRowNum; i++) { 
  21.     HSSFRow row = sheet.getRow(i); 
  22.     // 獲取當前最后單元格列號 
  23.     int lastCellNum = row.getLastCellNum(); 
  24.     for (int j = 0; j < lastCellNum; j++) { 
  25.      HSSFCell cell = row.getCell(j); 
  26.      String value = cell.getStringCellValue();// 注意! 如果Excel 里面的值是String 那么getStringCellValue 如果是其他類型 則需要修改 
  27.      System.out.print(value + " "); 
  28.     } 
  29.     System.out.println(); 
  30.    } 
  31.  
  32.   } catch (Exception e) { 
  33.    e.printStackTrace(); 
  34.   } 
  35.  } 

xlsx:

pom:

  1. <!-- poi高版本額外包 --> 
  2. <dependency> 
  3.     <groupId>org.apache.poi</groupId> 
  4.     <artifactId>poi-examples</artifactId> 
  5.     <version>3.9</version> 
  6. </dependency> 
  7. <dependency> 
  8.     <groupId>org.apache.poi</groupId> 
  9.     <artifactId>poi-excelant</artifactId> 
  10.     <version>3.9</version> 
  11. </dependency> 
  12. <dependency> 
  13.     <groupId>org.apache.poi</groupId> 
  14.     <artifactId>poi-ooxml</artifactId> 
  15.     <version>3.9</version> 
  16. </dependency> 
  17. <dependency> 
  18.     <groupId>org.apache.poi</groupId> 
  19.     <artifactId>poi-ooxml-schemas</artifactId> 
  20.     <version>3.9</version> 
  21. </dependency> 
  22. <dependency> 
  23.     <groupId>org.apache.poi</groupId> 
  24.     <artifactId>poi-scratchpad</artifactId> 
  25.     <version>3.9</version> 
  26. </dependency> 

導出:

  1. public class PoiCreateExcel { 
  2.  
  3.  public static void main(String[] args) { 
  4.   // 創建表頭 
  5.   String[] title = {"id","name","sex"}; 
  6.   //創建Excel工作薄 
  7.   XSSFWorkbook workbook = new XSSFWorkbook(); 
  8.   //創建一個工作表shheet 
  9.   Sheet sheet = workbook.createSheet(); 
  10.   //創建第一行 
  11.   Row row = sheet.createRow(0); 
  12.   Cell cell = null
  13.   // 插入第一行 
  14.   for (int i = 0; i < title.length; i++) { 
  15.    cell = row.createCell(i); 
  16.    cell.setCellValue(title[i]); 
  17.   } 
  18.   // 追加數據 
  19.   for (int i = 1; i < 10; i++) {// 這里的int 起始是1 也就是第二行開始 
  20.    Row nexTrow = sheet.createRow(i); 
  21.    Cell cell2 = nexTrow.createCell(0); 
  22.    cell2.setCellValue("a"+i); 
  23.    cell2 = nexTrow.createCell(1); 
  24.    cell2.setCellValue("user"); 
  25.    cell2 = nexTrow.createCell(2); 
  26.    cell2.setCellValue("男"); 
  27.   } 
  28.   // 創建一個文件 
  29.   File file = new File("d:/poi.xlsx");// 這里可以修改成高版本的 
  30.   try { 
  31.    file.createNewFile(); 
  32.    // 將內容存盤 
  33.    FileOutputStream stream = FileUtils.openOutputStream(file); 
  34.    workbook.write(stream); 
  35.  
  36.    stream.close(); 
  37.   } catch (Exception e) { 
  38.    e.printStackTrace(); 
  39.   } 
  40.  } 

導入:

  1. public class PoiReadExcel { 
  2.  public List<Double> readExcels(InputStream is)throws Exception{ 
  3.   List<Double> xlsxList = new ArrayList<Double>(); 
  4.   try { 
  5.    if(is ==null){ 
  6.     throw new IOException("文件不正確!"); 
  7.    } 
  8.    Workbook workbook = WorkbookFactory.create(is); 
  9.    FormulaEvaluator fe = workbook.getCreationHelper().createFormulaEvaluator(); 
  10.    //獲取第一張表 
  11.    Sheet sheet = workbook.getSheetAt(0); 
  12.    if(sheet == null){ 
  13.     throw new IOException("傳入的excel的第一張表為空!"); 
  14.    } 
  15.    for(int rowNum = 0;rowNum <= sheet.getLastRowNum(); rowNum++){ 
  16.     Row row = sheet.getRow(rowNum); 
  17.     if(row != null){ 
  18.      //獲得當前行的開始列 
  19.      int firstCellNum = row.getFirstCellNum(); 
  20.      //獲得當前行的列數 
  21.      int lastCellNum = row.getPhysicalNumberOfCells(); 
  22.      String result = ""
  23.      //循環當前行 
  24.      for(int cellNum = firstCellNum; cellNum < lastCellNum;cellNum++){ 
  25.       Cell cell = row.getCell(cellNum); 
  26.       double value = 0; 
  27.       String valueString = cell.getStringCellValue(); 
  28.       if(null!=fe.evaluate(cell)){ 
  29.        value = fe.evaluate(cell).getNumberValue(); 
  30.       } 
  31.       //result = result + cellNum + ":"+value + "----"; 
  32.       result = result + cellNum + ":"+valueString + "----"
  33.      } 
  34.      System.out.println(result + " "); 
  35.     } 
  36.    } 
  37.    is.close(); 
  38.   } catch (FileNotFoundException e) { 
  39.   throw new Exception("文件不正確!"); 
  40.  } 
  41.   return xlsxList; 
  42.  } 
  43.  
  44.  public static void main(String[] args) throws Exception { 
  45.   InputStream is = new FileInputStream("d:/poi.xlsx"); 
  46.   PoiReadExcel re = new PoiReadExcel(); 
  47.   re.readExcels(is); 
  48.  } 

二,JXL

JXL只能對Excel進行操作,屬于比較老的框架,它只支持到Excel 95-2000的版本。現在已經停止更新和維護。

pom:

  1. <!-- jxl --> 
  2. <dependency> 
  3.     <groupId>net.sourceforge.jexcelapi</groupId> 
  4.     <artifactId>jxl</artifactId> 
  5.     <version>2.6.10</version> 
  6. </dependency> 

導出:

  1. public class JxlCreateExcel { 
  2.  
  3.  public static void main(String[] args) { 
  4.   // 首先設置表格第一行 表格頭名稱 也就是列名 
  5.   String [] title = {"id","name","sex"}; 
  6.   // 創建Excel文件 存入路徑 
  7.   File file = new File("d:/jxl.xls"); 
  8.   try { 
  9.    file.createNewFile(); 
  10.    // 創建工作薄 
  11.    WritableWorkbook workbook = Workbook.createWorkbook(file); 
  12.    // 創建sheet 
  13.    WritableSheet sheet = workbook.createSheet("sheet1",0); 
  14.    // 添加數據 
  15.    Label label = null
  16.    // 第一行設置列名 
  17.    for (int i = 0; i < title.length; i++) { 
  18.     label = new Label(i,0,title[i]); 
  19.     sheet.addCell(label); 
  20.    } 
  21.    // 追加數據 從第二行開始 i從1開始 
  22.    for (int i = 1; i < 9; i++) { 
  23.     label = new Label(0,i,"id:"+i); 
  24.     sheet.addCell(label); 
  25.     label = new Label(1,i,"user"); 
  26.     sheet.addCell(label); 
  27.     label = new Label(2,i,"男"); 
  28.     sheet.addCell(label); 
  29.    } 
  30.    // 寫入 并在最后關閉流 
  31.    workbook.write(); 
  32.    workbook.close(); 
  33.   } catch (Exception e) { 
  34.    e.printStackTrace(); 
  35.   } 
  36.  } 

導入:

  1. public class JxlReadExcel { 
  2.  
  3.  public static void main(String[] args) { 
  4.   try { 
  5.    // 創建 Workbook 
  6.    Workbook workbook = Workbook.getWorkbook(new File("d:/jxl.xls")); 
  7.    // 獲取工作表sheet 
  8.    Sheet sheet = workbook.getSheet(0); 
  9.    // 獲取數據 
  10.    for (int i = 0; i < sheet.getRows(); i++) {// 獲取行 
  11.     for (int j = 0; j < sheet.getColumns(); j++) {// 獲取列 
  12.      Cell cell = sheet.getCell(j,i); 
  13.      System.out.print(cell.getContents() + " ");// 得到單元格的內容 
  14.     } 
  15.     System.out.println(); 
  16.    } 
  17.    workbook.close(); 
  18.   } catch (Exception e) { 
  19.    e.printStackTrace(); 
  20.   } 
  21.  } 

到此,代碼可直接部署運行,希望可以幫助到你~

總結

到此這篇關于Java實現導入導出Excel文件的方法(poi,jxl)的文章就介紹到這了,更多相關java實現導入導出excel文件內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_45150222/article/details/105012569

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美亚洲天堂 | 91视频完整版 | 精品无码久久久久久久久 | 日韩欧美不卡视频 | 精品91自产拍在线 | 亚洲精品一二三四区 | 青草国产在线视频 | 1024国产基地永久免费 | 精品国产欧美一区二区 | 456成人免费高清视频 | 99精品热线在线观看免费视频 | 亚洲乱亚洲乱妇41p国产成人 | 成人性生交小说免费看 | brazzersxxx欧美| 国产色司机在线视频免费观看 | 高清在线看| 极品丝袜乱系列在线阅读 | 97午夜视频| 日韩亚洲国产激情在线观看 | 精品推荐国产麻豆剧传媒 | 欧美一区二区三区在线观看不卡 | 欧美视频黑鬼大战白妞 | 91九色porn偷拍在线 | 国产精品综合在线 | 久久精品小视频 | 校花被吃奶还摸下面 | 办公室大战秘书呻吟 | 久久精品亚洲牛牛影视 | a级片在线播放 | 日韩一区二区三区精品 | 2015台湾永久免费平台 | 性欧美xxxxx老太婆 | 好大好硬好深好爽想要小雪 | 久久精品人人做人人爽97 | 国产亚洲精品一区二区在线播放 | 百合漫画咱啪全彩抚慰 | 乌克兰粉嫩摘花第一次 | 久见久热 这里只有精品 | 男人操男人 | 亚洲第99页 | 青青青国产视频 |