激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 玖草| 手机免费看一级片 | 黄色免费在线电影 | 亚洲成人福利网站 | 免费在线观看毛片视频 | 中文字幕在线永久视频 | omofun 动漫在线观看 | 亚洲一区二区三区在线免费观看 | 亚洲欧美aⅴ | 国产手机av在线 | 成人在线视频精品 | 夜添久久精品亚洲国产精品 | 亚洲成人自拍电影 | 日韩视频一二三 | 国产做爰| 欧美在线观看黄色 | 天天撸日日夜夜 | 2018亚洲男人天堂 | 成人福利视频在线观看 | 在线成人精品视频 | 97精品国产高清在线看入口 | chengrenyingshi | 精品中文字幕久久久久四十五十骆 | av在线免费电影 | 午夜网站视频 | 欧美a视频 | 精品中文字幕在线播放 | 91精品国产777在线观看 | 国产福利不卡一区二区三区 | 91福利免费视频 | 欧美成人三级大全 | 12av毛片| 国产精品视频一区二区三区四 | 日韩一级毛毛片 | 男男啪羞羞视频网站 | 欧美亚洲综合在线 | 久久av免费| 国产精品av久久久久久无 | 手机免费看一级片 | 成人久久久精品国产乱码一区二区 | 99久久久国产精品露出 |