poi操作excel_poi操作excel常用方法总结 - CSDN
精华内容
参与话题
  • Java中POI操作Excel常用方法

    万次阅读 2015-09-16 15:24:44
    一、 POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对MicrosoftOffice格式档案读和写的功能。 二、 HSSF概况 HSSF 是HorribleSpreadSheet Format的缩写,通过HSSF,你可以用纯...

    一、 POI简介
    Apache POIApache软件基金会的开放源码函式库,POI提供APIJava程序对MicrosoftOffice格式档案读和写的功能。

    二、 HSSF概况
    HSSF HorribleSpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类APIusermodeleventusermodel,即用户模型事件-用户模型

    三、 POI EXCEL文档结构类
    HSSFWorkbookexcel文档对象

    HSSFSheetexcelsheetHSSFRow excel的行

    HSSFCellexcel的单元格 HSSFFontexcel字体

    HSSFName 名称HSSFDataFormat 日期格式

    HSSFHeadersheet

    HSSFFootersheet

    HSSFCellStylecell样式

    HSSFDateUtil日期

    HSSFPrintSetup打印

    HSSFErrorConstants错误信息表

    四、 EXCEL常用操作方法

    1得到Excel常用对象

    Java代码

    1. POIFSFileSystem fs=newPOIFSFileSystem(new     FileInputStream("d:/test.xls"));
    2. //得到Excel工作簿对象
    3. HSSFWorkbook wb = new HSSFWorkbook(fs);
    4. //得到Excel工作表对象
    5. HSSFSheet sheet = wb.getSheetAt(0);
    6. //得到Excel工作表的行
    7. HSSFRow row = sheet.getRow(i);
    8. //得到Excel工作表指定行的单元格
    9. HSSFCell cell = row.getCell((short) j);
    10. cellStyle = cell.getCellStyle();//得到单元格样式
    11. POIFSFileSystem fs=newPOIFSFileSystem(new     FileInputStream("d:/test.xls"));
    12. //得到Excel工作簿对象
    13. HSSFWorkbook wb = new HSSFWorkbook(fs);
    14. //得到Excel工作表对象
    15. HSSFSheet sheet = wb.getSheetAt(0);
    16. //得到Excel工作表的行
    17. HSSFRow row = sheet.getRow(i);
    18. //得到Excel工作表指定行的单元格
    19. HSSFCell cell = row.getCell((short) j);
    20. cellStyle = cell.getCellStyle();//得到单元格样式



    2、建立Excel常用对象

    Java代码

    1. HSSFWorkbook wb = new HSSFWorkbook();//创建Excel工作簿对象    
    2. HSSFSheet sheet = wb.createSheet("new     sheet");//创建Excel工作表对象    
    3. HSSFRow row = sheet.createRow((short)0); //创建Excel工作表的行    
    4. cellStyle = wb.createCellStyle();//创建单元格样式
    5. row.createCell((short)0).setCellStyle(cellStyle); //创建Excel工作表指定行的单元格    
    6. row.createCell((short)0).setCellValue(1); //设置Excel工作表的值    
    7. HSSFWorkbook wb = new HSSFWorkbook();//创建Excel工作簿对象
    8. HSSFSheet sheet = wb.createSheet("new     sheet");//创建Excel工作表对象    
    9. HSSFRow row = sheet.createRow((short)0); //创建Excel工作表的行
    10. cellStyle = wb.createCellStyle();//创建单元格样式
    11. row.createCell((short)0).setCellStyle(cellStyle); //创建Excel工作表指定行的单元格
    12. row.createCell((short)0).setCellValue(1); //设置Excel工作表的值



    3、设置sheet名称和单元格内容

    Java代码

    1. wb.setSheetName(1, "第一张工作表",HSSFCell.ENCODING_UTF_16);    
    2. cell.setEncoding((short) 1);
    3. cell.setCellValue("单元格内容");
    4. wb.setSheetName(1, "第一张工作表",HSSFCell.ENCODING_UTF_16);    
    5. cell.setEncoding((short) 1);
    6. cell.setCellValue("单元格内容");



    4、取得sheet的数目

    Java代码

    1. wb.getNumberOfSheets()
    2. wb.getNumberOfSheets()



    5根据index取得sheet对象

    Java代码

    1. HSSFSheet sheet = wb.getSheetAt(0);
    2. HSSFSheet sheet = wb.getSheetAt(0);



    6、取得有效的行数

    Java代码

    1. int rowcount = sheet.getLastRowNum();
    2. int rowcount = sheet.getLastRowNum();



    7、取得一行的有效单元格个数

    Java代码

    1. row.getLastCellNum();
    2. row.getLastCellNum();


    8、单元格值类型读写

    Java代码

    1. cell.setCellType(HSSFCell.CELL_TYPE_STRING); //设置单元格为STRING类型    
    2. cell.getNumericCellValue();//读取为数值类型的单元格内容
    3. cell.setCellType(HSSFCell.CELL_TYPE_STRING); //设置单元格为STRING类型
    4. cell.getNumericCellValue();//读取为数值类型的单元格内容



    9、设置列宽、行高

    Java代码

    1. sheet.setColumnWidth((short)column,(short)width);
    2. row.setHeight((short)height);
    3. sheet.setColumnWidth((short)column,(short)width);
    4. row.setHeight((short)height);



    10、添加区域,合并单元格

    Java代码

    1. Region region = new Region((short)rowFrom,(short)columnFrom,(short)rowTo
    2. ,(short)columnTo);//合并从第rowFrom行columnFrom列    
    3. sheet.addMergedRegion(region);// 到rowTo行columnTo的区域
    4. //得到所有区域
    5. sheet.getNumMergedRegions()
    6. Region region = new Region((short)rowFrom,(short)columnFrom,(short)rowTo
    7. ,(short)columnTo);//合并从第rowFrom行columnFrom列
    8. sheet.addMergedRegion(region);// 到rowTo行columnTo的区域
    9. //得到所有区域
    10. sheet.getNumMergedRegions()



    11、保存Excel文件

    Java代码

    1. FileOutputStream fileOut = new FileOutputStream(path);    
    2. wb.write(fileOut);
    3. FileOutputStream fileOut = new     FileOutputStream(path);
    4. wb.write(fileOut);



    12、根据单元格不同属性返回字符串数值

    Java代码

    1. public String getCellStringValue(HSSFCell cell) {
    2. String cellValue = "";
    3. switch (cell.getCellType()) {
    4. case HSSFCell.CELL_TYPE_STRING://字符串类型
    5. cellValue = cell.getStringCellValue();
    6. if(cellValue.trim().equals("")||cellValue.trim().length()<=0)
    7. cellValue=" ";
    8. break;
    9. case HSSFCell.CELL_TYPE_NUMERIC: //数值类型
    10. cellValue = String.valueOf(cell.getNumericCellValue());    
    11. break;
    12. case HSSFCell.CELL_TYPE_FORMULA: //公式
    13. cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
    14. cellValue =     String.valueOf(cell.getNumericCellValue());
    15. break;
    16. case HSSFCell.CELL_TYPE_BLANK:
    17. cellValue=" ";
    18. break;
    19. case HSSFCell.CELL_TYPE_BOOLEAN:
    20. break;
    21. case HSSFCell.CELL_TYPE_ERROR:
    22. break;
    23. default:
    24. break;
    25. }
    26. return cellValue;
    27. }
    28. public String getCellStringValue(HSSFCell cell) {
    29. String cellValue = "";
    30. switch (cell.getCellType()) {
    31. case HSSFCell.CELL_TYPE_STRING://字符串类型
    32. cellValue = cell.getStringCellValue();
    33. if(cellValue.trim().equals("")||cellValue.trim().length()<=0)
    34. cellValue=" ";
    35. break;
    36. case HSSFCell.CELL_TYPE_NUMERIC: //数值类型
    37. cellValue =     String.valueOf(cell.getNumericCellValue());
    38. break;
    39. case HSSFCell.CELL_TYPE_FORMULA: //公式
    40. cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
    41. cellValue =     String.valueOf(cell.getNumericCellValue());
    42. break;
    43. case HSSFCell.CELL_TYPE_BLANK:
    44. cellValue=" ";
    45. break;
    46. case HSSFCell.CELL_TYPE_BOOLEAN:
    47. break;
    48. case HSSFCell.CELL_TYPE_ERROR:
    49. break;
    50. default:
    51. break;
    52. }
    53. return cellValue;
    54. }




    13、常用单元格边框格式

    Java代码

    1. HSSFCellStyle style = wb.createCellStyle();
    2. style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);//下边框
    3. style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);//左边框
    4. style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    5. style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    6. HSSFCellStyle style = wb.createCellStyle();
    7. style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);//下边框
    8. style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);//左边框
    9. style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    10. style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框




    14、设置字体和内容位置

    Java代码

    1. HSSFFont f = wb.createFont();
    2. f.setFontHeightInPoints((short) 11);//字号
    3. f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//加粗
    4. style.setFont(f);
    5. style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中
    6. style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中
    7. style.setRotation(short rotation);//单元格内容的旋转的角度
    8. HSSFDataFormat df = wb.createDataFormat();
    9. style1.setDataFormat(df.getFormat("0.00%"));//设置单元格数据格式
    10. cell.setCellFormula(string);//给单元格设公式
    11. style.setRotation(short rotation);//单元格内容的旋转的角度
    12. HSSFFont f = wb.createFont();
    13. f.setFontHeightInPoints((short) 11);//字号
    14. f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//加粗
    15. style.setFont(f);
    16. style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中
    17. style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中
    18. style.setRotation(short rotation);//单元格内容的旋转的角度
    19. HSSFDataFormat df = wb.createDataFormat();
    20. style1.setDataFormat(df.getFormat("0.00%"));//设置单元格数据格式
    21. cell.setCellFormula(string);//给单元格设公式
    22. style.setRotation(short rotation);//单元格内容的旋转的角度




    15、插入图片

    Java代码

    1. //先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
    2. ByteArrayOutputStream byteArrayOut = new     ByteArrayOutputStream();
    3. BufferedImage bufferImg = ImageIO.read(new File("ok.jpg"));
    4. ImageIO.write(bufferImg,"jpg",byteArrayOut);
    5. //读进一个excel模版
    6. FileInputStream fos = new FileInputStream(filePathName+"/stencil.xlt");
    7. fs = new POIFSFileSystem(fos);
    8. //创建一个工作薄
    9. HSSFWorkbook wb = new HSSFWorkbook(fs);
    10. HSSFSheet sheet = wb.getSheetAt(0);
    11. HSSFPatriarch patriarch =     sheet.createDrawingPatriarch();
    12. HSSFClientAnchor anchor = new     HSSFClientAnchor(0,0,1023,255,(short) 0,0,(short)10,10);
    13. patriarch.createPicture(anchor ,     wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));    
    14. //先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
    15. ByteArrayOutputStream byteArrayOut = new     ByteArrayOutputStream();
    16. BufferedImage bufferImg = ImageIO.read(new File("ok.jpg"));
    17. ImageIO.write(bufferImg,"jpg",byteArrayOut);
    18. //读进一个excel模版
    19. FileInputStream fos = new FileInputStream(filePathName+"/stencil.xlt");
    20. fs = new POIFSFileSystem(fos);
    21. //创建一个工作薄
    22. HSSFWorkbook wb = new HSSFWorkbook(fs);
    23. HSSFSheet sheet = wb.getSheetAt(0);
    24. HSSFPatriarch patriarch =     sheet.createDrawingPatriarch();
    25. HSSFClientAnchor anchor = new     HSSFClientAnchor(0,0,1023,255,(short) 0,0,(short)10,10);
    26. patriarch.createPicture(anchor ,     wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));    




    16、调整工作表位置

    Java代码

    1. HSSFWorkbook wb = new HSSFWorkbook();
    2. HSSFSheet sheet = wb.createSheet("format     sheet");
    3. HSSFPrintSetup ps = sheet.getPrintSetup();
    4. sheet.setAutobreaks(true);
    5. ps.setFitHeight((short)1);
    6. ps.setFitWidth((short)1);
    7. HSSFWorkbook wb = new HSSFWorkbook();
    8. HSSFSheet sheet = wb.createSheet("format     sheet");
    9. HSSFPrintSetup ps = sheet.getPrintSetup();
    10. sheet.setAutobreaks(true);
    11. ps.setFitHeight((short)1);
    12. ps.setFitWidth((short)1);




    17、设置打印区域

    Java代码

    1. HSSFSheet sheet = wb.createSheet("Sheet1");
    2. wb.setPrintArea(0, "$A$1:$C$2");
    3. HSSFSheet sheet = wb.createSheet("Sheet1");
    4. wb.setPrintArea(0, "$A$1:$C$2");



    18、标注脚注

    Java代码

    1. HSSFSheet sheet = wb.createSheet("format     sheet");
    2. HSSFFooter footer = sheet.getFooter()
    3. footer.setRight( "Page " +     HSSFFooter.page() + " of " + HSSFFooter.numPages() );
    4. HSSFSheet sheet = wb.createSheet("format     sheet");
    5. HSSFFooter footer = sheet.getFooter()
    6. footer.setRight( "Page " +     HSSFFooter.page() + " of " + HSSFFooter.numPages() );



    19、在工作单中清空行数据,调整行位置

    Java代码

    1. HSSFWorkbook wb = new HSSFWorkbook();
    2. HSSFSheet sheet = wb.createSheet("row     sheet");
    3. // Create various cells and rows for spreadsheet.
    4. // Shift rows 6 - 11 on the spreadsheet to the top     (rows 0 - 5)
    5. sheet.shiftRows(5, 10, -5);
    6. HSSFWorkbook wb = new HSSFWorkbook();
    7. HSSFSheet sheet = wb.createSheet("row     sheet");
    8. // Create various cells and rows for spreadsheet.
    9. // Shift rows 6 - 11 on the spreadsheet to the top     (rows 0 - 5)
    10. sheet.shiftRows(5, 10, -5);



    20、选中指定的工作表

    Java代码

    1. HSSFSheet sheet = wb.createSheet("row     sheet");
    2. heet.setSelected(true);
    3. HSSFSheet sheet = wb.createSheet("row     sheet");
    4. heet.setSelected(true);




    21、工作表的放大缩小

    Java代码

    1. HSSFSheet sheet1 = wb.createSheet("new     sheet");
    2. sheet1.setZoom(1,2); // 50 percent magnification
    3. HSSFSheet sheet1 = wb.createSheet("new     sheet");
    4. sheet1.setZoom(1,2); // 50 percent magnification




    22、头注和脚注

    Java代码

    1. HSSFSheet sheet = wb.createSheet("new     sheet");
    2. HSSFHeader header = sheet.getHeader();
    3. header.setCenter("Center Header");
    4. header.setLeft("Left Header");
    5. header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") +
    6. HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic     font and size 16");
    7. HSSFSheet sheet = wb.createSheet("new     sheet");
    8. HSSFHeader header = sheet.getHeader();
    9. header.setCenter("Center Header");
    10. header.setLeft("Left Header");
    11. header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") +
    12. HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic     font and size 16");



    23、自定义颜色

    Java代码

    1. HSSFCellStyle style = wb.createCellStyle();
    2. style.setFillForegroundColor(HSSFColor.LIME.index);
    3. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);    
    4. HSSFFont font = wb.createFont();
    5. font.setColor(HSSFColor.RED.index);
    6. style.setFont(font);
    7. cell.setCellStyle(style);
    8. HSSFCellStyle style = wb.createCellStyle();
    9. style.setFillForegroundColor(HSSFColor.LIME.index);
    10. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);    
    11. HSSFFont font = wb.createFont();
    12. font.setColor(HSSFColor.RED.index);
    13. style.setFont(font);
    14. cell.setCellStyle(style);




    24、填充和颜色设置

    Java代码

    1. HSSFCellStyle style = wb.createCellStyle();
    2. style.setFillBackgroundColor(HSSFColor.AQUA.index);
    3. style.setFillPattern(HSSFCellStyle.BIG_SPOTS);
    4. HSSFCell cell = row.createCell((short) 1);
    5. cell.setCellValue("X");
    6. style = wb.createCellStyle();
    7. style.setFillForegroundColor(HSSFColor.ORANGE.index);    
    8. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);    
    9. cell.setCellStyle(style);
    10. HSSFCellStyle style = wb.createCellStyle();
    11. style.setFillBackgroundColor(HSSFColor.AQUA.index);
    12. style.setFillPattern(HSSFCellStyle.BIG_SPOTS);
    13. HSSFCell cell = row.createCell((short) 1);
    14. cell.setCellValue("X");
    15. style = wb.createCellStyle();
    16. style.setFillForegroundColor(HSSFColor.ORANGE.index);    
    17. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);    
    18. cell.setCellStyle(style);




    25、强行刷新单元格公式

    Java代码

    1. HSSFFormulaEvaluator eval=new     HSSFFormulaEvaluator((HSSFWorkbook) wb);
    2. privatestaticvoid updateFormula(Workbook wb,Sheet s,int row){
    3. Row r=s.getRow(row);
    4. Cell c=null;
    5. FormulaEcaluator eval=null;
    6. if(wb instanceof HSSFWorkbook)
    7. eval=new HSSFFormulaEvaluator((HSSFWorkbook) wb);
    8. elseif(wb instanceof XSSFWorkbook)
    9. eval=new XSSFFormulaEvaluator((XSSFWorkbook) wb);
    10. for(int i=r.getFirstCellNum();i<r.getLastCellNum();i++){    
    11. c=r.getCell(i);
    12. if(c.getCellType()==Cell.CELL_TYPE_FORMULA)
    13. eval.evaluateFormulaCell(c);
    14. }
    15. }
    16. HSSFFormulaEvaluator eval=new     HSSFFormulaEvaluator((HSSFWorkbook) wb);
    17. privatestaticvoid updateFormula(Workbook wb,Sheet s,int row){
    18. Row r=s.getRow(row);
    19. Cell c=null;
    20. FormulaEcaluator eval=null;
    21. if(wb instanceof HSSFWorkbook)
    22. eval=new HSSFFormulaEvaluator((HSSFWorkbook) wb);
    23. elseif(wb instanceof XSSFWorkbook)
    24. eval=new XSSFFormulaEvaluator((XSSFWorkbook) wb);
    25. for(int i=r.getFirstCellNum();i<r.getLastCellNum();i++){    
    26. c=r.getCell(i);
    27. if(c.getCellType()==Cell.CELL_TYPE_FORMULA)
    28. eval.evaluateFormulaCell(c);
    29. }
    30. }




    说明:FormulaEvaluator提供了evaluateFormulaCell(Cell cell)方法,计算公式保存结果,但不改变公式。而evaluateInCell(Cell cell) 方法是计算公式,并将原公式替换为计算结果,也就是说该单元格的类型不在是Cell.CELL_TYPE_FORMULA而是Cell.CELL_TYPE_NUMBERICHSSFFormulaEvaluator提供了静态方法evaluateAllFormu

    laCells(HSSFWorkbookwb) ,计算一个Excel文件的所有公式,用起来很方便。
    展开全文
  • 一、 POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。二、 HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯...

    一、 POI简介

                Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

    二、 HSSF概况

                HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。

    三、 POI EXCEL文档结构类

                HSSFWorkbook excel文档对象

                HSSFSheet excel的sheet HSSFRow excel的行

                HSSFCell excel的单元格 HSSFFont excel字体

                HSSFName 名称 HSSFDataFormat 日期格式

                HSSFHeader sheet头

                HSSFFooter sheet尾

                HSSFCellStyle cell样式

                HSSFDateUtil 日期

                HSSFPrintSetup 打印

                HSSFErrorConstants 错误信息表

    四、 EXCEL常用操作方法

      1、 得到Excel常用对象           

    [c-sharp] view plaincopy
    1. POIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:/test.xls"));   
    2. //得到Excel工作簿对象   
    3. HSSFWorkbook wb = new HSSFWorkbook(fs);  
    4. //得到Excel工作表对象   
    5. HSSFSheet sheet = wb.getSheetAt(0);   
    6. //得到Excel工作表的行   
    7. HSSFRow row = sheet.getRow(i);  
    8. //得到Excel工作表指定行的单元格   
    9. HSSFCell cell = row.getCell((short) j);  
    10. cellStyle = cell.getCellStyle();//得到单元格样式  

     2、建立Excel常用对象

    [c-sharp] view plaincopy
    1. HSSFWorkbook wb = new HSSFWorkbook();//创建Excel工作簿对象  
    2. HSSFSheet sheet = wb.createSheet("new sheet");//创建Excel工作表对象    
    3. HSSFRow row = sheet.createRow((short)0); //创建Excel工作表的行  
    4. cellStyle = wb.createCellStyle();//创建单元格样式  
    5. row.createCell((short)0).setCellStyle(cellStyle); //创建Excel工作表指定行的单元格  
    6. row.createCell((short)0).setCellValue(1); //设置Excel工作表的值  
    3、设置sheet名称和单元格内容
    [c-sharp] view plaincopy
    1. wb.setSheetName(1, "第一张工作表",HSSFCell.ENCODING_UTF_16);          
    2. cell.setEncoding((short) 1);      
    3. cell.setCellValue("单元格内容");  
    4、取得sheet的数目 
    [c-sharp] view plaincopy
    1. wb.getNumberOfSheets()   
    5、  index取得sheet对象
    [c-sharp] view plaincopy
    1. HSSFSheet sheet = wb.getSheetAt(0);  
    6、取得一个sheet页里的行数
    [c-sharp] view plaincopy
    1. int rowcount = sheet.getLastRowNum();  
    7、取得一行的列数  

    Poi的行获取是从0开始算行,列的话从1开始算,

    有3行的话就sheet.getLastRowNum()获取到返回2,3列 getLastCellNum()返回

    [c-sharp] view plaincopy
    1. row.getLastCellNum();    

    8、单元格值类型读写

    [c-sharp] view plaincopy
    1. cell.setCellType(HSSFCell.CELL_TYPE_STRING); //设置单元格为STRING类型  
    2. cell.getNumericCellValue();//读取为数值类型的单元格内容  

     

    9、设置列宽、行高

    [c-sharp] view plaincopy
    1. sheet.setColumnWidth((short)column,(short)width);      
    2. row.setHeightInPoints( height);  //设置行高

    3. float  ff=sheet1.getDefaultRowHeightInPoints();//获取 默认行高
      HSSFCellStyle cellStyle= wb.createCellStyle();
      sheet1.getDefaultRowHeightInPoints();
      cellStyle.setWrapText(true);//设置在单元格内可以换行  
      row.setHeightInPoints(ff);//设置换行后的行高度

     

    10、添加区域,合并单元格

    [c-sharp] view plaincopy
    1. Region region = new Region((short)rowFrom,(short)columnFrom,(short)rowTo  ,(short)columnTo);
    2. //合并从第rowFrom行columnFrom列  // 到rowTo行columnTo的区域
    3.   
    4. //得到所有区域      
    5. sheet.addMergedRegion(region);   
    6. sheet.getNumMergedRegions()   

     

    11、保存Excel文件

    [c-sharp] view plaincopy
    1. FileOutputStream fileOut = new FileOutputStream(path);   
    2. wb.write(fileOut);   

     

    12、根据单元格不同属性返回字符串数值

    [c-sharp] view plaincopy
    1. public String getCellStringValue(HSSFCell cell) {      
    2.         String cellValue = "";      
    3.         switch (cell.getCellType()) {      
    4.         case HSSFCell.CELL_TYPE_STRING://字符串类型  
    5.             cellValue = cell.getStringCellValue();      
    6.             if(cellValue.trim().equals("")||cellValue.trim().length()<=0)      
    7.                 cellValue=" ";      
    8.             break;      
    9.         case HSSFCell.CELL_TYPE_NUMERIC: //数值类型  
    10.             cellValue = String.valueOf(cell.getNumericCellValue());      
    11.             break;      
    12.         case HSSFCell.CELL_TYPE_FORMULA: //公式  
    13.             cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);      
    14.             cellValue = String.valueOf(cell.getNumericCellValue());      
    15.             break;      
    16.         case HSSFCell.CELL_TYPE_BLANK:      
    17.             cellValue=" ";      
    18.             break;      
    19.         case HSSFCell.CELL_TYPE_BOOLEAN:      
    20.             break;      
    21.         case HSSFCell.CELL_TYPE_ERROR:      
    22.             break;      
    23.         default:      
    24.             break;      
    25.         }      
    26.         return cellValue;      
    27.     }     

     

    13、常用单元格边框格式

    [c-sharp] view plaincopy
    1. HSSFCellStyle style = wb.createCellStyle();      
    2. style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);//下边框       
    3. style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);//左边框       
    4. style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框       
    5. style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框    

     

    14、设置字体和内容位置

    [c-sharp] view plaincopy
    1. HSSFFont f  = wb.createFont();      
    2. f.setFontHeightInPoints((short) 11);//字号      
    3. f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//加粗      
    4. style.setFont(f);      
    5. style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中      
    6. style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中      
    7. style.setRotation(short rotation);//单元格内容的旋转的角度      
    8. HSSFDataFormat df = wb.createDataFormat();      
    9. style1.setDataFormat(df.getFormat("0.00%"));//设置单元格数据格式      
    10. cell.setCellFormula(string);//给单元格设公式      
    11. style.setRotation(short rotation);//单元格内容的旋转的角度   

     

    15、插入图片

    [c-sharp] view plaincopy
    1. //先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray      
    2.       ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();      
    3.       BufferedImage bufferImg = ImageIO.read(new File("ok.jpg"));      
    4.       ImageIO.write(bufferImg,"jpg",byteArrayOut);      
    5. //读进一个excel模版      
    6. FileInputStream fos = new FileInputStream(filePathName+"/stencil.xlt");       
    7. fs = new POIFSFileSystem(fos);      
    8. //创建一个工作薄      
    9. HSSFWorkbook wb = new HSSFWorkbook(fs);      
    10. HSSFSheet sheet = wb.getSheetAt(0);      
    11. HSSFPatriarch patriarch = sheet.createDrawingPatriarch();      
    12. HSSFClientAnchor anchor = new HSSFClientAnchor(0,0,1023,255,(short) 0,0,(short)10,10);           
    13. patriarch.createPicture(anchor , wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));    

     

    16、调整工作表位置

    [c-sharp] view plaincopy
    1. HSSFWorkbook wb = new HSSFWorkbook();     
    2. HSSFSheet sheet = wb.createSheet("format sheet");     
    3. HSSFPrintSetup ps = sheet.getPrintSetup();     
    4. sheet.setAutobreaks(true);     
    5. ps.setFitHeight((short)1);     
    6. ps.setFitWidth((short)1);   
      

     

    17、设置打印区域

    [c-sharp] view plaincopy
    1. HSSFSheet sheet = wb.createSheet("Sheet1");     
    2. wb.setPrintArea(0, "$A$1:$C$2");    

     

    18、标注脚注

    [c-sharp] view plaincopy
    1. HSSFSheet sheet = wb.createSheet("format sheet");     
    2. HSSFFooter footer = sheet.getFooter()     
    3. footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );   

     

    19、在工作单中清空行数据,调整行位置

    [c-sharp] view plaincopy
    1. HSSFWorkbook wb = new HSSFWorkbook();     
    2. HSSFSheet sheet = wb.createSheet("row sheet");     
    3. // Create various cells and rows for spreadsheet.     
    4. // Shift rows 6 - 11 on the spreadsheet to the top (rows 0 - 5)     
    5. sheet.shiftRows(5, 10, -5);    

     

    20、选中指定的工作表

    [c-sharp] view plaincopy
    1. HSSFSheet sheet = wb.createSheet("row sheet");     
    2. heet.setSelected(true);     

     

    21、工作表的放大缩小

     

    [c-sharp] view plaincopy
    1. HSSFSheet sheet1 = wb.createSheet("new sheet");     
    2. sheet1.setZoom(1,2);   // 50 percent magnification    

     

    22、头注和脚注

    [c-sharp] view plaincopy
    1. HSSFSheet sheet = wb.createSheet("new sheet");     
    2. HSSFHeader header = sheet.getHeader();     
    3. header.setCenter("Center Header");     
    4. header.setLeft("Left Header");     
    5. header.setRight(HSSFHeader.font("Stencil-Normal""Italic") +     
    6. HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic font and size 16");  

     

    23、自定义颜色

    [c-sharp] view plaincopy
    1. HSSFCellStyle style = wb.createCellStyle();     
    2. style.setFillForegroundColor(HSSFColor.LIME.index);     
    3. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);     
    4. HSSFFont font = wb.createFont();     
    5. font.setColor(HSSFColor.RED.index);     
    6. style.setFont(font);     
    7. cell.setCellStyle(style);     

    24、填充和颜色设置

    [c-sharp] view plaincopy
    1. HSSFCellStyle style = wb.createCellStyle();     
    2. style.setFillBackgroundColor(HSSFColor.AQUA.index);     
    3. style.setFillPattern(HSSFCellStyle.BIG_SPOTS);     
    4. HSSFCell cell = row.createCell((short) 1);     
    5. cell.setCellValue("X");     
    6. style = wb.createCellStyle();     
    7. style.setFillForegroundColor(HSSFColor.ORANGE.index);     
    8. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);     
    9. cell.setCellStyle(style);   

    25、强行刷新单元格公式

    [c-sharp] view plaincopy
    1. HSSFFormulaEvaluator eval=new HSSFFormulaEvaluator((HSSFWorkbook) wb);    
    2. private static void updateFormula(Workbook wb,Sheet s,int row){     
    3.         Row r=s.getRow(row);     
    4.         Cell c=null;     
    5.         FormulaEcaluator eval=null;     
    6.         if(wb instanceof HSSFWorkbook)     
    7.             eval=new HSSFFormulaEvaluator((HSSFWorkbook) wb);     
    8.         else if(wb instanceof XSSFWorkbook)     
    9.             eval=new XSSFFormulaEvaluator((XSSFWorkbook) wb);     
    10.         for(int i=r.getFirstCellNum();i<r.getLastCellNum();i++){     
    11.             c=r.getCell(i);     
    12.             if(c.getCellType()==Cell.CELL_TYPE_FORMULA)     
    13.                 eval.evaluateFormulaCell(c);     
    14.         }     
    15.     }    


    说明:FormulaEvaluator提供了evaluateFormulaCell(Cell cell)方法,计算公式保存结果,但不改变公式。而evaluateInCell(Cell cell) 方法是计算公式,并将原公式替换为计算结果,也就是说该单元格的类型不在是Cell.CELL_TYPE_FORMULA而是Cell.CELL_TYPE_NUMBERIC。HSSFFormulaEvaluator提供了静态方法evaluateAllFormu

    laCells(HSSFWorkbook wb) ,计算一个Excel文件的所有公式,用起来很方便。 


    展开全文
  • 关于POI选择 我这里使用的是4.0.1版本的。需要导入:poi-4.0.1.jar和poi-ooxml-4.0.1.jar,这两个jar包。 97-2003版本的Excel操作方法 读取Excel表格 private HSSFWorkbook wb = null; //excel操作对象 ...

    关于POI选择

    我这里使用的是4.0.1版本的。需要导入:poi-4.0.1.jar和poi-ooxml-4.0.1.jar,这两个jar包。


    97-2003版本的Excel操作方法

    读取Excel表格

    private HSSFWorkbook wb = null;								//excel操作对象
    private HSSFSheet sheet = null;									//表格对象
    private HSSFRow row = null;										//定义行对象
    private HSSFCell cell = null; 										//定义列对象
    
    File file = new File(文件名);
    FileInputStream fis = null;											//文件输入流
    POIFSFileSystem fs = null;
    try {
    			fis = new FileInputStream(file);
    			fs = new POIFSFileSystem(fis);
    			wb = new HSSFWorkbook(fs);
    			sheet = wb.getSheetAt(0);										/第一张表
    			int firstRowNum = sheet.getFirstRowNum();			
    			row = sheet.getRow(firstRowNum);						//获取第一行
    			short lastCellNum = row.getLastCellNum();			//获取多少列
    			while(i <= lastCellNum ) {
    				cell = row.getCell(i);
    				cell.setCellType(CellType.STRING);
    				String string1 = cell.getStringCellValue();
    				++i;
    			}
    	} catch (FileNotFoundException e) {
    			e.printStackTrace();
    	} catch (IOException e) {
    			e.printStackTrace();
    	} finally {
    				//关闭资源
    				try {
    					fis.close();
    					fs.close();
    					wb.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    	}
    

    2007版本以上Excel操作方法

    读取Excel表格

    private XSSFWorkbook xssfWorkbook = null;
    private FileInputStream fis = null;
    private XSSFSheet sheetAt = null;
    private XSSFRow row = null;
    private XSSFCell cell = null;
    
    File file = new File(文件名);
    try {
    			fis = new FileInputStream(file);
    			xssfWorkbook = new XSSFWorkbook(fis);
    			sheetAt = xssfWorkbook.getSheetAt(0);
    			int firstRowNum = sheetAt.getFirstRowNum();				//获取第一行
    			row = sheetAt.getRow(firstRowNum);
    			
    			short lastCellNum = row.getLastCellNum();					//获取多少列
    			while(i < lastCellNum) {
    				cell = row.getCell(i);
    				cell.setCellType(CellType.STRING);
    				String string1 = cell.getStringCellValue();
    				++i;
    			}	
    	} catch (IOException e) {
    			e.printStackTrace();
    	} finally {
    		//关闭资源
    		if(fis != null) {
    			try {
    				fis.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		
    		if(xssfWorkbook != null) {
    			try {
    				xssfWorkbook.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    

    写入Excel表格

    XSSFWorkbook xssfWorkbook = null;
    FileOutputStream fos = null;
    XSSFSheet createSheet = null;
    XSSFRow createRow = null;
    XSSFCell createCell = null;
    int size = 10;
    File file = new File(文件名);	
    try {
    			xssfWorkbook = new XSSFWorkbook();
    			createSheet = xssfWorkbook.createSheet();
    			createRow = createSheet.createRow(0);
    			
    			for(int i = 0; i < size; ++i) {
    				createCell = createRow.createCell(i);
    				createCell.setCellType(CellType.STRING);
    				createCell.setCellValue(“内容”);
    			}
    			fos = new FileOutputStream(file);
    			xssfWorkbook.write(fos);
    }catch(IOException e) {
    			e.printStackTrace();
    }finally {
    		try {
    			fos.close();
    			xssfWorkbook.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    }
    

    其他的方法可以查看文档使用,以上只是poi读取、写入excel的简单操作。记录下来,以便以后使用。

    展开全文
  • POI操作Excel完整示例

    2020-07-14 23:31:03
    NULL 博文链接:https://eryan.iteye.com/blog/1909090
  • POI操作Excel

    2019-07-09 18:55:55
    第一个问题:如何使用POI创建Excel表格并将内容输入到Excel表格? //创建工作簿 XSSF代表10版的Excel(HSSF是03版的Excel) XSSFWorkbook wb = new XSSFWorkbook(); //使用工作簿创建工作表 ...

    编译环境:IntelliJ IDEA
    poi-ooxml 3.15版本的jar包(下面是jar包地址)
    https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml/3.15

    第一个问题:如何使用POI创建Excel表格并将内容输入到Excel表格?

    	 	//创建工作簿  XSSF代表10版的Excel(HSSF是03版的Excel)
            XSSFWorkbook wb = new XSSFWorkbook();
    		//使用工作簿创建工作表
           XSSFSheet sheet = wb.createSheet("此处是sheet表名");
           
           /*  此处包含一系列对表格内容的操作,合并下方第五六问下的代码放入此处即可*/
           
    
           //上面设置好了内容,我们当然是要输出到某个文件的,输出就需要有输出流
             File file = new File("E:/2010.xlsx");  
             //判断该文件是否存在,若不存在则创建该文件
             if(!file.exists()){
                 file.createNewFile();
             }
             //创建一个向 file文件中写入数据的文件输出流(输入流输出流是以程序为中心的)
             FileOutputStream fos= new FileOutputStream(file); 
            //向指定文件写入内容
             wb.write(fos);
             fos.close();
    

    好,上面我们已经创建好了一个Excel表格,并且具备了向该表格输入数据的能力
    在这里插入图片描述
    这就是上面程序创建好的表格(我的Excel还没激活,嘿嘿)

    第二个问题:如何向Excel表格中输入内容?
    在这里解释一下,虽然这个表格看上去所有的单元格都有,其实对于程序来说是空白的,因为我们只创建了一张空表,所以实际是这样子的
    在这里插入图片描述
    (我用马赛克涂的,嘻嘻)
    接下来就是创建行并且创建单元格(所有的行和单元格都是创建后才有的)
    下标从0开始,0代表第一行也代表第一列。

       //创建第一行
       XSSFRow row = sheet.createRow(0);
       //在行中创建第一列(就是创建了一个单元格)
        XSSFCell cell  = row.createCell(0);
        //设置该单元格的内容
        cell.setCellValue("加油!");
    

    在这里插入图片描述
    这是上述代码运行的效果

    第三个问题,怎么合并单元格? (这跟第二个问题下的代码无关)

      // 那我们先创建三行三列
      for (int i = 0 ; i < 3 ; i++){
                XSSFRow row = sheet.createRow(i);
                for(int j = 0 ; j < 3 ; j++){
                    row.createCell(j);
                }
       }
       //合并第一行第二行第一列,即合并(0,0)和(1,0)两个单元格
        //四个参数为(起始行,终止行,起始列,终止列)
        sheet.addMergedRegion(new CellRangeAddress(0,1,0,0));
        //合并第三行第一列第二列第三列,即合并(2,0)和(2,1)、(2,2)三个单元格
        sheet.addMergedRegion(new CellRangeAddress(2,2,0,2));
    

    在这里插入图片描述
    这是效果图。

    第四个问题:如何给合并行设置数据?
    直接给(起始行,起始列)这个坐标的位置赋值就可以啦。

            //给第一个合并格赋值
            sheet.getRow(0).getCell(0).setCellValue("你好!");
            //给第二个合并格赋值
            sheet.getRow(2).getCell(0).setCellValue("Hello!");
    

    在这里插入图片描述
    这是效果图。

    第五个问题:我想要数据在中间,而不是在边上怎么处理?
    那这个就要设置单元格的格式了,这个应该放在创建单元格之前,和第三四问的代码合并起来就是:

        //设置单元格风格
        XSSFCellStyle style = wb.createCellStyle();
        //设置边框
        style.setBorderTop(BorderStyle.THIN);    //上边框
        style.setBorderBottom(BorderStyle.THIN); //下边框
        style.setBorderLeft(BorderStyle.THIN);   //左边框
        style.setBorderRight(BorderStyle.THIN);  //右边框
        //设置文字水平居中
        style.setAlignment(HorizontalAlignment.CENTER);
        //设置文字垂直居中
        style.setVerticalAlignment(VerticalAlignment.CENTER);
        //=======================================================
        //=======================================================
        //创建三行三列
        for (int i = 0 ; i < 3 ; i++){
            XSSFRow row = sheet.createRow(i);
            for(int j = 0 ; j < 3 ; j++){
                row.createCell(j).setCellStyle(style); //为每个单元格设置风格(可用if语句选择设置)
            }
        }
        //合并第一行第二行第一列,即合并(0,0)和(1,0)两个单元格
        sheet.addMergedRegion(new CellRangeAddress(0,1,0,0));
        //合并第三行第一列第二列第三列,即合并(2,0)和(2,1)、(2,2)三个单元格
        sheet.addMergedRegion(new CellRangeAddress(2,2,0,2));
    
        //给第一个合并格赋值
        sheet.getRow(0).getCell(0).setCellValue("你好!");
        //给第二个合并格赋值
        sheet.getRow(2).getCell(0).setCellValue("Hello!");
    

    在这里插入图片描述
    这是效果图

    第六个问题:如何设置行高?
    现在举个例子,还是上述代码,我要第三行数据的高度增加,不那么窄。

    //增加第三行行高,单位是px
     sheet.getRow(2).setHeightInPoints(20);
    

    在这里插入图片描述

    第七个问题:我把第一个的“你好!”改成很长的“你好!加油!”,会发现单元格盛不下数据。
    在这里插入图片描述
    那就要设置宽度了。

         //getPhysicalNumberOfCells()代表这行有多少包含数据的列
          for(int i=0;i<sheet.getRow(0).getPhysicalNumberOfCells();i++){
                //POI设置列宽度时比较特殊,它的基本单位是1/255个字符大小,
                //1个汉字占2个字符,就需要用255*10   (10 = 2*2+1+2*2+1)
                sheet.setColumnWidth(i, 255*10);
          }
    

    在这里插入图片描述
    第一行设置宽度以后,下面对应的行的宽度也会随之发生变化。

    最后,放几个异常在这里:
    在这里插入图片描述
    说明Excel表格打开了没关,每次运行代码的时候都要把这个Excel表格关掉。
    在这里插入图片描述
    这个说明在合并单元格的时候重复了,比如合并了(1,0)(1,1),
    后面又合并(1,1)(1,2)。因为(1,1)已经被合并过一次了,再重复合并就会出错。

    在这里插入图片描述
    这个问题就是还没创建某个单元格就操作它。比如上面我创建了3行,然后我操作
    sheet.getRow(3).getCell(0).setCellValue("===");就会报错,因为我只创建了3行,getRow(i)中i的最大值只能是2。

    如果有错误欢迎指出~~

    展开全文
  • :用jdk自带的输入输出流 1://可以先设置response编码,使响应给浏览器的东西不是...自己可以设置request来拼路径(xlsx是excel表文件的后缀格式),(filepath是要下载excel文件的相对路劲,也就是文件名比如下载leaves
  • Java中使用POI操作Excel

    千次阅读 2018-07-16 16:00:13
    这里简单的分享下POI中HSSF和XSSF来操作Excel。使用POI之前你需要在maven中引入以下依赖:&lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;artifactId&gt;...
  • maven依赖: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency>...org.apache.poi</groupId> <artifactId>poi</artifactId> ...
  • POI 操作 Excel -大数据量高效读写

    万次阅读 2018-10-25 10:06:45
    poi的读取的三种模式 模式 说明 读写性 SXSSF 内存中保留一定行数数据,超过行数,将索引最低的数据刷入硬盘 只写 eventmodel 基于事件驱动,SAX的方式解析excel,cup和内存消耗低 只读 ...
  • 封装poi操作Excel工具类

    千次阅读 2016-02-15 14:28:56
    在上一篇文章《使用poi读写Excel》中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类。  该工具类主要完成的功能是:读取Excel、汇总Excel的功能。在读取时,可以设定开始和...
  • POI操作Excel详解,HSSF和XSSF两种方式

    万次阅读 2014-07-23 22:51:44
    package com.tools.poi.lesson1; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.ParseExcept
  • java之poi操作excel-批量导入导出

    万次阅读 多人点赞 2019-03-12 16:10:03
    上一篇博文介绍了poi操作excel的基本读写操作后,接下来,介绍一下在项目中的实际用途:批量导入、批量导出功能。因为重点知识介绍批量导入导出excel功能,故而项目整体的搭建后台用jdbc与struts2,前端页面用jquery...
  • POI操作Excel文档,帮助文档
  • 一、简介 POI提供API给Java程序对Microsoft Office格式档案读和写的功能,我们可以使用...POI操作Excel主要用到的类有两个: HSSF(.xls后缀):提供读写Microsoft Excel XLS格式档案的功能。 XSSF(.xlsx后缀):提...
  • 接下来介绍一下采用java操作excel的第三方框架:poi,对于poi,我想搞过批量导入、导出数据的博友都应该熟悉(当然啦,批量导入导出excel数据还有jxl,这里我就不介绍了!)。poi是apache jakarta项目的子项目,主要...
  • Springboot 之 使用POI操作excel

    千次阅读 2018-05-07 17:15:56
    为了方便地使用poi操作excel,在这里,使用类BubbleSheet对Poi中的Sheet进行封装,BubbleSheet类如下所示:import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFPalette...
  • poi操作excel 单元格的换行 import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss....
  • 使用POI操作Excel修改模板(批量替换excel中的数据)import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org....
  • POI操作Excel换行

    千次阅读 2017-06-05 16:48:32
    POI操作Excel换行网上很多博客操作Excel换行的都是Office2007之前的格式,一直没找到支持扩展名为.xlsx的换行方式,被折腾到要死,无奈之下只能去官网看看,发现了同时支持.xlsx和.xls两种扩展的。现在列出如下: ...
  • poi操作excel

    2020-07-29 14:18:19
    使用poi上传下载excel,包含springboot+mybatis+mysql+poi
1 2 3 4 5 ... 20
收藏数 16,659
精华内容 6,663
关键字:

poi操作excel