zoukankan      html  css  js  c++  java
  • Java操作Excel之Poi

    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo1 {
    
        public static void main(String[] args) throws Exception {
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            FileOutputStream fileOut=new FileOutputStream("c:\用Poi搞出来的工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo2 {
    
        public static void main(String[] args) throws Exception {
            
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            wb.createSheet("第二个Sheet页");  // 创建第二个Sheet页
            FileOutputStream fileOut=new FileOutputStream("c:\用Poi搞出来的Sheet页.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo3 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            Row row=sheet.createRow(0); // 创建一个行
            Cell cell=row.createCell(0); // 创建一个单元格  第1列
            cell.setCellValue(1);  // 给单元格设置值
            
            row.createCell(1).setCellValue(1.2);   // 创建一个单元格 第2列 值是1.2
            
            row.createCell(2).setCellValue("这是一个字符串类型"); // 创建一个单元格 第3列 值为一个字符串
            
            row.createCell(3).setCellValue(false);  // 创建一个单元格 第4列 值为布尔类型
            
            FileOutputStream fileOut=new FileOutputStream("c:\用Poi搞出来的Cell.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    import java.util.Calendar;
    import java.util.Date;
    
    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.usermodel.CreationHelper;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo4 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            Row row=sheet.createRow(0); // 创建一个行
            Cell cell=row.createCell(0); // 创建一个单元格  第1列
            cell.setCellValue(new Date());  // 给单元格设置值
            
            CreationHelper createHelper=wb.getCreationHelper();
            CellStyle cellStyle=wb.createCellStyle(); //单元格样式类
            cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyy-mm-dd hh:mm:ss"));
            cell=row.createCell(1); // 第二列
            cell.setCellValue(new Date());
            cell.setCellStyle(cellStyle);
            
            cell=row.createCell(2);  // 第三列
            cell.setCellValue(Calendar.getInstance());
            cell.setCellStyle(cellStyle);
            
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    import java.util.Calendar;
    import java.util.Date;
    
    import org.apache.poi.hssf.usermodel.HSSFCell;
    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.usermodel.CreationHelper;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo5 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            Row row=sheet.createRow(0); // 创建一个行
            Cell cell=row.createCell(0); // 创建一个单元格  第1列
            cell.setCellValue(new Date());  // 给单元格设置值
            
            row.createCell(1).setCellValue(1);
            row.createCell(2).setCellValue("一个字符串");
            row.createCell(3).setCellValue(true);
            row.createCell(4).setCellValue(HSSFCell.CELL_TYPE_NUMERIC);
            row.createCell(5).setCellValue(false);
            
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    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;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    
    public class Demo6 {
    
        public static void main(String[] args) throws Exception{
            InputStream is=new FileInputStream("c:\二货名单.xls");
            POIFSFileSystem fs=new POIFSFileSystem(is);
            HSSFWorkbook wb=new HSSFWorkbook(fs);
            HSSFSheet hssfSheet=wb.getSheetAt(0); // 获取第一个Sheet页
            if(hssfSheet==null){
                return;
            }
            // 遍历行Row
            for(int rowNum=0;rowNum<=hssfSheet.getLastRowNum();rowNum++){
                HSSFRow hssfRow=hssfSheet.getRow(rowNum);
                if(hssfRow==null){
                    continue;
                }
                // 遍历列Cell
                for(int cellNum=0;cellNum<=hssfRow.getLastCellNum();cellNum++){
                    HSSFCell hssfCell=hssfRow.getCell(cellNum);
                    if(hssfCell==null){
                        continue;
                    }
                    System.out.print(" "+getValue(hssfCell));
                }
                System.out.println();
            }
        }
        
        private static String getValue(HSSFCell hssfCell){
            if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
                return String.valueOf(hssfCell.getBooleanCellValue());
            }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
                return String.valueOf(hssfCell.getNumericCellValue());
            }else{
                return String.valueOf(hssfCell.getStringCellValue());
            }
        }
    }
    package com.java1234.poi;
    
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    import org.apache.poi.hssf.extractor.ExcelExtractor;
    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;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    
    public class Demo7 {
    
        public static void main(String[] args) throws Exception{
            InputStream is=new FileInputStream("c:\二货名单.xls");
            POIFSFileSystem fs=new POIFSFileSystem(is);
            HSSFWorkbook wb=new HSSFWorkbook(fs);
            
            ExcelExtractor excelExtractor=new ExcelExtractor(wb);
            excelExtractor.setIncludeSheetNames(false);// 我们不需要Sheet页的名字
            System.out.println(excelExtractor.getText());
        }
        
    
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    import java.util.Date;
    
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFRichTextString;
    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.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo8 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            Row row=sheet.createRow(2); // 创建一个行
            row.setHeightInPoints(30);
            
            createCell(wb, row, (short)0, HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_BOTTOM);
            createCell(wb, row, (short)1, HSSFCellStyle.ALIGN_FILL, HSSFCellStyle.VERTICAL_CENTER);
            createCell(wb, row, (short)2, HSSFCellStyle.ALIGN_LEFT, HSSFCellStyle.VERTICAL_TOP);
            createCell(wb, row, (short)3, HSSFCellStyle.ALIGN_RIGHT, HSSFCellStyle.VERTICAL_TOP);
            
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
        
        /**
         * 创建一个单元格并为其设定指定的对其方式
         * @param wb 工作簿
         * @param row 行
         * @param column  列
         * @param halign  水平方向对其方式
         * @param valign  垂直方向对其方式
         */
        private static void createCell(Workbook wb,Row row,short column,short halign,short valign){
            Cell cell=row.createCell(column);  // 创建单元格
            cell.setCellValue(new HSSFRichTextString("Align It"));  // 设置值
            CellStyle cellStyle=wb.createCellStyle(); // 创建单元格样式
            cellStyle.setAlignment(halign);  // 设置单元格水平方向对其方式
            cellStyle.setVerticalAlignment(valign); // 设置单元格垂直方向对其方式
            cell.setCellStyle(cellStyle); // 设置单元格样式
        }
        
    
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    import java.util.Calendar;
    import java.util.Date;
    
    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.usermodel.CreationHelper;
    import org.apache.poi.ss.usermodel.IndexedColors;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo9 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            Row row=sheet.createRow(1); // 创建一个行
            
            Cell cell=row.createCell(1); // 创建一个单元格
            cell.setCellValue(4);
            
            CellStyle cellStyle=wb.createCellStyle(); 
            cellStyle.setBorderBottom(CellStyle.BORDER_THIN); // 底部边框
            cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); // 底部边框颜色
            
            cellStyle.setBorderLeft(CellStyle.BORDER_THIN);  // 左边边框
            cellStyle.setLeftBorderColor(IndexedColors.GREEN.getIndex()); // 左边边框颜色
            
            cellStyle.setBorderRight(CellStyle.BORDER_THIN); // 右边边框
            cellStyle.setRightBorderColor(IndexedColors.BLUE.getIndex());  // 右边边框颜色
            
            cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM_DASHED); // 上边边框
            cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex());  // 上边边框颜色
            
            cell.setCellStyle(cellStyle);
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    import java.util.Calendar;
    import java.util.Date;
    
    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.usermodel.CreationHelper;
    import org.apache.poi.ss.usermodel.IndexedColors;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo10 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            Row row=sheet.createRow(1); // 创建一个行
            
            Cell cell=row.createCell(1);
            cell.setCellValue("XX");
            CellStyle cellStyle=wb.createCellStyle();
            cellStyle.setFillBackgroundColor(IndexedColors.AQUA.getIndex()); // 背景色
            cellStyle.setFillPattern(CellStyle.BIG_SPOTS);  
            cell.setCellStyle(cellStyle);
            
            
            Cell cell2=row.createCell(2);
            cell2.setCellValue("YYY");
            CellStyle cellStyle2=wb.createCellStyle();
            cellStyle2.setFillForegroundColor(IndexedColors.RED.getIndex()); // 前景色
            cellStyle2.setFillPattern(CellStyle.SOLID_FOREGROUND);  
            cell2.setCellStyle(cellStyle2);
            
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    import java.util.Calendar;
    import java.util.Date;
    
    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.usermodel.CreationHelper;
    import org.apache.poi.ss.usermodel.IndexedColors;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.util.CellRangeAddress;
    
    public class Demo11 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            Row row=sheet.createRow(1); // 创建一个行
            
            Cell cell=row.createCell(1);
            cell.setCellValue("单元格合并测试");
            
            sheet.addMergedRegion(new CellRangeAddress(
                    1, // 起始行
                    2, // 结束行
                    1, // 其实列
                    2  // 结束列
            ));
            
            
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    
    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.usermodel.Font;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo12 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            Row row=sheet.createRow(1); // 创建一个行
            
            // 创建一个字体处理类
            Font font=wb.createFont();
            font.setFontHeightInPoints((short)24);
            font.setFontName("Courier New");
            font.setItalic(true);
            font.setStrikeout(true);
            
            CellStyle style=wb.createCellStyle();
            style.setFont(font);
            
            Cell cell=row.createCell((short)1);
            cell.setCellValue("This is test of fonts");
            cell.setCellStyle(style);
            
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo13 {
    
        public static void main(String[] args) throws Exception{
            InputStream inp=new FileInputStream("c:\工作簿.xls");
            POIFSFileSystem fs=new POIFSFileSystem(inp);
            Workbook wb=new HSSFWorkbook(fs);
            Sheet sheet=wb.getSheetAt(0);  // 获取第一个Sheet页
            Row row=sheet.getRow(0); // 获取第一行
            Cell cell=row.getCell(0); // 获取单元格
            if(cell==null){
                cell=row.createCell(3);
            }
            cell.setCellType(Cell.CELL_TYPE_STRING);
            cell.setCellValue("测试单元格");
            
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    import java.util.Calendar;
    import java.util.Date;
    
    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.usermodel.CreationHelper;
    import org.apache.poi.ss.usermodel.IndexedColors;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.util.CellRangeAddress;
    
    public class Demo14 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            Row row=sheet.createRow(2); // 创建一个行
            Cell cell=row.createCell(2);
            cell.setCellValue("我要换行 
     成功了吗?");
            
            CellStyle cs=wb.createCellStyle();
            // 设置可以换行
            cs.setWrapText(true);
            cell.setCellStyle(cs);
            
            // 调整下行的高度
            row.setHeightInPoints(2*sheet.getDefaultRowHeightInPoints());
            // 调整单元格宽度
            sheet.autoSizeColumn(2);
            
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }
    package com.java1234.poi;
    
    import java.io.FileOutputStream;
    
    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.usermodel.DataFormat;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class Demo15 {
    
        public static void main(String[] args) throws Exception{
            Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
            Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
            CellStyle style;
            DataFormat format=wb.createDataFormat();
            Row row;
            Cell cell;
            short rowNum=0;
            short colNum=0;
            
            row=sheet.createRow(rowNum++);
            cell=row.createCell(colNum);
            cell.setCellValue(111111.25);
            
            style=wb.createCellStyle();
            style.setDataFormat(format.getFormat("0.0")); // 设置数据格式
            cell.setCellStyle(style);
            
            row=sheet.createRow(rowNum++);
            cell=row.createCell(colNum);
            cell.setCellValue(1111111.25);
            style=wb.createCellStyle();
            style.setDataFormat(format.getFormat("#,##0.000"));
            cell.setCellStyle(style);
            
            FileOutputStream fileOut=new FileOutputStream("c:\工作簿.xls");
            wb.write(fileOut);
            fileOut.close();
        }
    }

    POI中文API文档          http://www.cnblogs.com/fqfanqi/p/6172223.html

    jar包下载     https://download.csdn.net/download/qq_38327551/10558375

  • 相关阅读:
    服务器的Redis连接不上解决方案
    给大家推荐一个很好的自学网站
    简单说下HashMap的实现原理
    LinkedList源码解析
    你要了解的jvm
    单例设计
    百度编辑器删除旧的图片
    Ueditor 单图、多图、视频、附件的上传及在线管理总结
    上传新图片删除旧图片
    webapi发布IIS时出现500.19错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny")或者是通过包含overrideModeDefault="Deny"....
  • 原文地址:https://www.cnblogs.com/duanwandao/p/9356668.html
Copyright © 2011-2022 走看看