`
天空之城
  • 浏览: 404814 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

POI操作EXCEL技巧(转)

阅读更多
1.创建工作簿 (WORKBOOK)  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
2.创建工作表(SHEET)  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet1 = wb.createSheet("new sheet");  
 
    HSSFSheet sheet2 = wb.createSheet("second sheet");  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
3.创建单元格(CELL)  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("new sheet");  
 
    // Create a row and put some cells in it. Rows are 0 based.  
 
    HSSFRow row = sheet.createRow((short)0);  
 
    // Create a cell and put a value in it.  
 
    HSSFCell cell = row.createCell((short)0);  
 
    cell.setCellValue(1);  
 
    // Or do it on one line.  
 
    row.createCell((short)1).setCellValue(1.2);  
 
    row.createCell((short)2).setCellValue("This is a string");  
 
    row.createCell((short)3).setCellValue(true);  
 
    // Write the output to a file  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
4.创建指定单元格式的单元格  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("new sheet");  
 
    // Create a row and put some cells in it. Rows are 0 based.  
 
    HSSFRow row = sheet.createRow((short)0);  
 
    // Create a cell and put a date value in it.  The first cell is not styled  
 
    // as a date.  
 
    HSSFCell cell = row.createCell((short)0);  
 
    cell.setCellValue(new Date());  
 
    // we style the second cell as a date (and time).  It is important to  
 
    // create a new cell style from the workbook otherwise you can end up  
 
    // modifying the built in style and effecting not only this cell but other cells.  
 
    HSSFCellStyle cellStyle = wb.createCellStyle();  
 
    cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));  
 
    cell = row.createCell((short)1);  
 
    cell.setCellValue(new Date());  
 
    cell.setCellStyle(cellStyle);  
 
    // Write the output to a file  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
5. 单元格的不同格式  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("new sheet");  
 
    HSSFRow row = sheet.createRow((short)2);  
 
    row.createCell((short) 0).setCellValue(1.1);  
 
    row.createCell((short) 1).setCellValue(new Date());  
 
    row.createCell((short) 2).setCellValue("a string");  
 
    row.createCell((short) 3).setCellValue(true);  
 
    row.createCell((short) 4).setCellType(HSSFCell.CELL_TYPE_ERROR);  
 
    // Write the output to a file  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
6.单元格的不通对齐方式  
 
    public static void main(String[] args)  
 
            throws IOException  
 
    {  
 
        HSSFWorkbook wb = new HSSFWorkbook();  
 
        HSSFSheet sheet = wb.createSheet("new sheet");  
 
        HSSFRow row = sheet.createRow((short) 2);  
 
        createCell(wb, row, (short) 0, HSSFCellStyle.ALIGN_CENTER);  
 
        createCell(wb, row, (short) 1, HSSFCellStyle.ALIGN_CENTER_SELECTION);  
 
        createCell(wb, row, (short) 2, HSSFCellStyle.ALIGN_FILL);  
 
        createCell(wb, row, (short) 3, HSSFCellStyle.ALIGN_GENERAL);  
 
        createCell(wb, row, (short) 4, HSSFCellStyle.ALIGN_JUSTIFY);  
 
        createCell(wb, row, (short) 5, HSSFCellStyle.ALIGN_LEFT);  
 
        createCell(wb, row, (short) 6, HSSFCellStyle.ALIGN_RIGHT);  
 
        // Write the output to a file  
 
        FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
        wb.write(fileOut);  
 
        fileOut.close();  
 
    }  
 
    /** 

     * Creates a cell and aligns it a certain way. 

     * 

     * @param wb        the workbook 

     * @param row       the row to create the cell in 

     * @param column    the column number to create the cell in 

     * @param align     the alignment for the cell. 

     */ 
 
    private static void createCell(HSSFWorkbook wb, HSSFRow row, short column, short align)  
 
    {  
 
        HSSFCell cell = row.createCell(column);  
 
        cell.setCellValue("Align It");  
 
        HSSFCellStyle cellStyle = wb.createCellStyle();  
 
        cellStyle.setAlignment(align);  
 
        cell.setCellStyle(cellStyle);  
 
    }  
 
7.单元格的边框设置  
 
Working with borders  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("new sheet");  
 
    // Create a row and put some cells in it. Rows are 0 based.  
 
    HSSFRow row = sheet.createRow((short) 1);  
 
    // Create a cell and put a value in it.  
 
    HSSFCell cell = row.createCell((short) 1);  
 
    cell.setCellValue(4);  
 
    // Style the cell with borders all around.  
 
    HSSFCellStyle style = wb.createCellStyle();  
 
    style.setBorderBottom(HSSFCellStyle.BORDER_THIN);  
 
    style.setBottomBorderColor(HSSFColor.BLACK.index);  
 
    style.setBorderLeft(HSSFCellStyle.BORDER_THIN);  
 
    style.setLeftBorderColor(HSSFColor.GREEN.index);  
 
    style.setBorderRight(HSSFCellStyle.BORDER_THIN);  
 
    style.setRightBorderColor(HSSFColor.BLUE.index);  
 
    style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASHED);  
 
    style.setTopBorderColor(HSSFColor.BLACK.index);  
 
    cell.setCellStyle(style);  
 
    // Write the output to a file  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
8.填充和颜色设置  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("new sheet");  
 
    // Create a row and put some cells in it. Rows are 0 based.  
 
    HSSFRow row = sheet.createRow((short) 1);  
 
    // Aqua background  
 
    HSSFCellStyle style = wb.createCellStyle();  
 
    style.setFillBackgroundColor(HSSFColor.AQUA.index);  
 
    style.setFillPattern(HSSFCellStyle.BIG_SPOTS);  
 
    HSSFCell cell = row.createCell((short) 1);  
 
    cell.setCellValue("X");  
 
    cell.setCellStyle(style);  
 
    // Orange "foreground", foreground being the fill foreground not the font color.  
 
    style = wb.createCellStyle();  
 
    style.setFillForegroundColor(HSSFColor.ORANGE.index);  
 
    style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);  
 
    cell = row.createCell((short) 2);  
 
    cell.setCellValue("X");  
 
    cell.setCellStyle(style);  
 
    // Write the output to a file  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
9.合并单元格操作  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("new sheet");  
 
    HSSFRow row = sheet.createRow((short) 1);  
 
    HSSFCell cell = row.createCell((short) 1);  
 
    cell.setCellValue("This is a test of merging");  
 
    sheet.addMergedRegion(new Region(1,(short)1,1,(short)2));  
 
    // Write the output to a file  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
10.字体设置  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("new sheet");  
 
    // Create a row and put some cells in it. Rows are 0 based.  
 
    HSSFRow row = sheet.createRow((short) 1);  
 
    // Create a new font and alter it.  
 
    HSSFFont font = wb.createFont();  
 
    font.setFontHeightInPoints((short)24);  
 
    font.setFontName("Courier New");  
 
    font.setItalic(true);  
 
    font.setStrikeout(true);  
 
    // Fonts are set into a style so create a new one to use.  
 
    HSSFCellStyle style = wb.createCellStyle();  
 
    style.setFont(font);  
 
    // Create a cell and put a value in it.  
 
    HSSFCell cell = row.createCell((short) 1);  
 
    cell.setCellValue("This is a test of fonts");  
 
    cell.setCellStyle(style);  
 
    // Write the output to a file  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
11.自定义颜色  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet();  
 
    HSSFRow row = sheet.createRow((short) 0);  
 
    HSSFCell cell = row.createCell((short) 0);  
 
    cell.setCellValue("Default Palette");  
 
    //apply some colors from the standard palette,  
 
    // as in the previous examples.  
 
    //we'll use red text on a lime background  
 
    HSSFCellStyle style = wb.createCellStyle();  
 
    style.setFillForegroundColor(HSSFColor.LIME.index);  
 
    style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);  
 
    HSSFFont font = wb.createFont();  
 
    font.setColor(HSSFColor.RED.index);  
 
    style.setFont(font);  
 
    cell.setCellStyle(style);  
 
    //save with the default palette  
 
    FileOutputStream out = new FileOutputStream("default_palette.xls");  
 
    wb.write(out);  
 
    out.close();  
 
    //now, let's replace RED and LIME in the palette  
 
    // with a more attractive combination  
 
    // (lovingly borrowed from freebsd.org)  
 
    cell.setCellValue("Modified Palette");  
 
    //creating a custom palette for the workbook  
 
    HSSFPalette palette = wb.getCustomPalette();  
 
    //replacing the standard red with freebsd.org red  
 
    palette.setColorAtIndex(HSSFColor.RED.index,  
 
            (byte) 153,  //RGB red (0-255)  
 
            (byte) 0,    //RGB green  
 
            (byte) 0     //RGB blue  
 
    );  
 
    //replacing lime with freebsd.org gold  
 
    palette.setColorAtIndex(HSSFColor.LIME.index, (byte) 255, (byte) 204, (byte) 102);  
 
    //save with the modified palette  
 
    // note that wherever we have previously used RED or LIME, the  
 
    // new colors magically appear  
 
    out = new FileOutputStream("modified_palette.xls");  
 
    wb.write(out);  
 
    out.close();  
 
12.读和重写EXCEL文件  
 
    POIFSFileSystem fs      =  
 
            new POIFSFileSystem(new FileInputStream("workbook.xls"));  
 
    HSSFWorkbook wb = new HSSFWorkbook(fs);  
 
    HSSFSheet sheet = wb.getSheetAt(0);  
 
    HSSFRow row = sheet.getRow(2);  
 
    HSSFCell cell = row.getCell((short)3);  
 
    if (cell == null)  
 
        cell = row.createCell((short)3);  
 
    cell.setCellType(HSSFCell.CELL_TYPE_STRING);  
 
    cell.setCellValue("a test");  
 
    // Write the output to a file  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
13.在EXCEL单元格中使用自动换行  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet s = wb.createSheet();  
 
    HSSFRow r = null;  
 
    HSSFCell c = null;  
 
    HSSFCellStyle cs = wb.createCellStyle();  
 
    HSSFFont f = wb.createFont();  
 
    HSSFFont f2 = wb.createFont();  
 
    cs = wb.createCellStyle();  
 
    cs.setFont( f2 );  
 
    //Word Wrap MUST be turned on  
 
    cs.setWrapText( true );  
 
    r = s.createRow( (short) 2 );  
 
    r.setHeight( (short) 0x349 );  
 
    c = r.createCell( (short) 2 );  
 
    c.setCellType( HSSFCell.CELL_TYPE_STRING );  
 
    c.setCellValue( "Use \n with word wrap on to create a new line" );  
 
    c.setCellStyle( cs );  
 
    s.setColumnWidth( (short) 2, (short) ( ( 50 * 8 ) / ( (double) 1 / 20 ) ) );  
 
    FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );  
 
    wb.write( fileOut );  
 
    fileOut.close();  
 
14.数字格式自定义  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("format sheet");  
 
    HSSFCellStyle style;  
 
    HSSFDataFormat format = wb.createDataFormat();  
 
    HSSFRow row;  
 
    HSSFCell cell;  
 
    short rowNum = 0;  
 
    short colNum = 0;  
 
    row = sheet.createRow(rowNum++);  
 
    cell = row.createCell(colNum);  
 
    cell.setCellValue(11111.25);  
 
    style = wb.createCellStyle();  
 
    style.setDataFormat(format.getFormat("0.0"));  
 
    cell.setCellStyle(style);  
 
    row = sheet.createRow(rowNum++);  
 
    cell = row.createCell(colNum);  
 
    cell.setCellValue(11111.25);  
 
    style = wb.createCellStyle();  
 
    style.setDataFormat(format.getFormat("#,##0.0000"));  
 
    cell.setCellStyle(style);  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
15.调整工作单位置  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("format sheet");  
 
    HSSFPrintSetup ps = sheet.getPrintSetup();  
 
    sheet.setAutobreaks(true);  
 
    ps.setFitHeight((short)1);  
 
    ps.setFitWidth((short)1);   
 
 
 
    // Create various cells and rows for spreadsheet.  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
16.设置打印区域  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("Sheet1");  
 
    wb.setPrintArea(0, "$A$1:$C$2");  
 
    //sets the print area for the first sheet  
 
    //Alternatively:  
 
    //wb.setPrintArea(0, 0, 1, 0, 0) is equivalent to using the name reference (See the JavaDocs for more details)  
 
    // Create various cells and rows for spreadsheet.  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
17.标注脚注  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("format sheet");  
 
    HSSFFooter footer = sheet.getFooter()  
 
    footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );  
 
   
 
    // Create various cells and rows for spreadsheet.  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
18.使用方便的内部提供的函数  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet1 = wb.createSheet( "new sheet" );  
 
    // Create a merged region  
 
    HSSFRow row = sheet1.createRow( (short) 1 );  
 
    HSSFRow row2 = sheet1.createRow( (short) 2 );  
 
    HSSFCell cell = row.createCell( (short) 1 );  
 
    cell.setCellValue( "This is a test of merging" );  
 
    Region region = new Region( 1, (short) 1, 4, (short) 4 );  
 
    sheet1.addMergedRegion( region );  
 
    // Set the border and border colors.  
 
    final short borderMediumDashed = HSSFCellStyle.BORDER_MEDIUM_DASHED;  
 
    HSSFRegionUtil.setBorderBottom( borderMediumDashed,  
 
        region, sheet1, wb );  
 
    HSSFRegionUtil.setBorderTop( borderMediumDashed,  
 
        region, sheet1, wb );  
 
    HSSFRegionUtil.setBorderLeft( borderMediumDashed,  
 
        region, sheet1, wb );  
 
    HSSFRegionUtil.setBorderRight( borderMediumDashed,  
 
        region, sheet1, wb );  
 
    HSSFRegionUtil.setBottomBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);  
 
    HSSFRegionUtil.setTopBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);  
 
    HSSFRegionUtil.setLeftBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);  
 
    HSSFRegionUtil.setRightBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);  
 
    // Shows some usages of HSSFCellUtil  
 
    HSSFCellStyle style = wb.createCellStyle();  
 
    style.setIndention((short)4);  
 
    HSSFCellUtil.createCell(row, 8, "This is the value of the cell", style);  
 
    HSSFCell cell2 = HSSFCellUtil.createCell( row2, 8, "This is the value of the cell");  
 
    HSSFCellUtil.setAlignment(cell2, wb, HSSFCellStyle.ALIGN_CENTER);  
 
    // Write out the workbook  
 
    FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );  
 
    wb.write( fileOut );  
 
    fileOut.close();  
 
19.在工作单中移动行,调整行的上下位置  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("row sheet");  
 
    // Create various cells and rows for spreadsheet.  
 
    // Shift rows 6 - 11 on the spreadsheet to the top (rows 0 - 5)  
 
    sheet.shiftRows(5, 10, -5);  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
20.选种指定的工作单  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("row sheet");  
 
    sheet.setSelected(true);  
 
    // Create various cells and rows for spreadsheet.  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
21.工作单的放大缩小  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet1 = wb.createSheet("new sheet");  
 
    sheet1.setZoom(3,4);   // 75 percent magnification  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
22.头注和脚注  
 
    HSSFWorkbook wb = new HSSFWorkbook();  
 
    HSSFSheet sheet = wb.createSheet("new sheet");  
 
    HSSFHeader header = sheet.getHeader();  
 
    header.setCenter("Center Header");  
 
    header.setLeft("Left Header");  
 
    header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") +  
 
                    HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic font and size 16");  
 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");  
 
    wb.write(fileOut);  
 
    fileOut.close();  
 
//-------------------------------以上实例代码均来自官方网站  
 
//-------------------------------POI中使用的颜色是用颜色索引来实现,如下:  
 
   /* 

    * 颜色对照表 数字代表颜色索引 

        8: BLACK 

        60: BROWN 

        59: OLIVE_GREEN 

        58: DARK_GREEN 

        56: DARK_TEAL 

        18: DARK_BLUE 

        32: DARK_BLUE 

        62: INDIGO 

        63: GREY_80_PERCENT 

        53: ORANGE 

        19: DARK_YELLOW 

        17: GREEN 

        21: TEAL 

        38: TEAL 

        12: BLUE 

        39: BLUE 

        54: BLUE_GREY 

        23: GREY_50_PERCENT 

        10: RED 

        52: LIGHT_ORANGE 

        50: LIME 

        57: SEA_GREEN 

        49: AQUA 

        48: LIGHT_BLUE 

        20: VIOLET 

        36: VIOLET 

        55: GREY_40_PERCENT 

        14: PINK 

        33: PINK 

        51: GOLD 

        13: YELLOW 

        34: YELLOW 

        11: BRIGHT_GREEN 

        35: BRIGHT_GREEN 

        15: TURQUOISE 

        35: TURQUOISE 

        16: DARK_RED 

        37: DARK_RED 

        40: SKY_BLUE 

        61: PLUM 

        25: PLUM 

        22: GREY_25_PERCENT 

        45: ROSE 

        43: LIGHT_YELLOW 

        42: LIGHT_GREEN 

        41: LIGHT_TURQUOISE 

        27:LIGHT_TURQUOISE 

        44: PALE_BLUE 

        46: LAVENDER 

        9: WHITE 

        24: CORNFLOWER_BLUE 

        26: LEMON_CHIFFON 

        25: MAROON 

        28: ORCHID 

        29: CORAL 

        30: ROYAL_BLUE 

        31: LIGHT_CORNFLOWER_BLUE 

    */ 
 
//----------------------------------------------------你可以按上面的方法来自定义颜色  
 
   /* 

    * 自定义颜色,去掉注释,贴加,其他则查看颜色对照表 

   HSSFPalette palette = this.getCustomPalette(); 

   palette.setColorAtIndex(idx, 

            i,  //RGB red (0-255) 

            j,    //RGB green 

            k     //RGB blue 

         );          

   */ 

1.创建工作簿 (WORKBOOK)

    HSSFWorkbook wb = new HSSFWorkbook();

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

2.创建工作表(SHEET)

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet1 = wb.createSheet("new sheet");

    HSSFSheet sheet2 = wb.createSheet("second sheet");

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

3.创建单元格(CELL)

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("new sheet");

    // Create a row and put some cells in it. Rows are 0 based.

    HSSFRow row = sheet.createRow((short)0);

    // Create a cell and put a value in it.

    HSSFCell cell = row.createCell((short)0);

    cell.setCellValue(1);

    // Or do it on one line.

    row.createCell((short)1).setCellValue(1.2);

    row.createCell((short)2).setCellValue("This is a string");

    row.createCell((short)3).setCellValue(true);

    // Write the output to a file

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

4.创建指定单元格式的单元格

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("new sheet");

    // Create a row and put some cells in it. Rows are 0 based.

    HSSFRow row = sheet.createRow((short)0);

    // Create a cell and put a date value in it.  The first cell is not styled

    // as a date.

    HSSFCell cell = row.createCell((short)0);

    cell.setCellValue(new Date());

    // we style the second cell as a date (and time).  It is important to

    // create a new cell style from the workbook otherwise you can end up

    // modifying the built in style and effecting not only this cell but other cells.

    HSSFCellStyle cellStyle = wb.createCellStyle();

    cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));

    cell = row.createCell((short)1);

    cell.setCellValue(new Date());

    cell.setCellStyle(cellStyle);

    // Write the output to a file

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

5. 单元格的不同格式

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("new sheet");

    HSSFRow row = sheet.createRow((short)2);

    row.createCell((short) 0).setCellValue(1.1);

    row.createCell((short) 1).setCellValue(new Date());

    row.createCell((short) 2).setCellValue("a string");

    row.createCell((short) 3).setCellValue(true);

    row.createCell((short) 4).setCellType(HSSFCell.CELL_TYPE_ERROR);

    // Write the output to a file

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

6.单元格的不通对齐方式

    public static void main(String[] args)

            throws IOException

    {

        HSSFWorkbook wb = new HSSFWorkbook();

        HSSFSheet sheet = wb.createSheet("new sheet");

        HSSFRow row = sheet.createRow((short) 2);

        createCell(wb, row, (short) 0, HSSFCellStyle.ALIGN_CENTER);

        createCell(wb, row, (short) 1, HSSFCellStyle.ALIGN_CENTER_SELECTION);

        createCell(wb, row, (short) 2, HSSFCellStyle.ALIGN_FILL);

        createCell(wb, row, (short) 3, HSSFCellStyle.ALIGN_GENERAL);

        createCell(wb, row, (short) 4, HSSFCellStyle.ALIGN_JUSTIFY);

        createCell(wb, row, (short) 5, HSSFCellStyle.ALIGN_LEFT);

        createCell(wb, row, (short) 6, HSSFCellStyle.ALIGN_RIGHT);

        // Write the output to a file

        FileOutputStream fileOut = new FileOutputStream("workbook.xls");

        wb.write(fileOut);

        fileOut.close();

    }

    /**

     * Creates a cell and aligns it a certain way.

     *

     * @param wb        the workbook

     * @param row       the row to create the cell in

     * @param column    the column number to create the cell in

     * @param align     the alignment for the cell.

     */

    private static void createCell(HSSFWorkbook wb, HSSFRow row, short column, short align)

    {

        HSSFCell cell = row.createCell(column);

        cell.setCellValue("Align It");

        HSSFCellStyle cellStyle = wb.createCellStyle();

        cellStyle.setAlignment(align);

        cell.setCellStyle(cellStyle);

    }

7.单元格的边框设置

Working with borders

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("new sheet");

    // Create a row and put some cells in it. Rows are 0 based.

    HSSFRow row = sheet.createRow((short) 1);

    // Create a cell and put a value in it.

    HSSFCell cell = row.createCell((short) 1);

    cell.setCellValue(4);

    // Style the cell with borders all around.

    HSSFCellStyle style = wb.createCellStyle();

    style.setBorderBottom(HSSFCellStyle.BORDER_THIN);

    style.setBottomBorderColor(HSSFColor.BLACK.index);

    style.setBorderLeft(HSSFCellStyle.BORDER_THIN);

    style.setLeftBorderColor(HSSFColor.GREEN.index);

    style.setBorderRight(HSSFCellStyle.BORDER_THIN);

    style.setRightBorderColor(HSSFColor.BLUE.index);

    style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASHED);

    style.setTopBorderColor(HSSFColor.BLACK.index);

    cell.setCellStyle(style);

    // Write the output to a file

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

8.填充和颜色设置

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("new sheet");

    // Create a row and put some cells in it. Rows are 0 based.

    HSSFRow row = sheet.createRow((short) 1);

    // Aqua background

    HSSFCellStyle style = wb.createCellStyle();

    style.setFillBackgroundColor(HSSFColor.AQUA.index);

    style.setFillPattern(HSSFCellStyle.BIG_SPOTS);

    HSSFCell cell = row.createCell((short) 1);

    cell.setCellValue("X");

    cell.setCellStyle(style);

    // Orange "foreground", foreground being the fill foreground not the font color.

    style = wb.createCellStyle();

    style.setFillForegroundColor(HSSFColor.ORANGE.index);

    style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    cell = row.createCell((short) 2);

    cell.setCellValue("X");

    cell.setCellStyle(style);

    // Write the output to a file

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

9.合并单元格操作

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("new sheet");

    HSSFRow row = sheet.createRow((short) 1);

    HSSFCell cell = row.createCell((short) 1);

    cell.setCellValue("This is a test of merging");

    sheet.addMergedRegion(new Region(1,(short)1,1,(short)2));

    // Write the output to a file

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

10.字体设置

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("new sheet");

    // Create a row and put some cells in it. Rows are 0 based.

    HSSFRow row = sheet.createRow((short) 1);

    // Create a new font and alter it.

    HSSFFont font = wb.createFont();

    font.setFontHeightInPoints((short)24);

    font.setFontName("Courier New");

    font.setItalic(true);

    font.setStrikeout(true);

    // Fonts are set into a style so create a new one to use.

    HSSFCellStyle style = wb.createCellStyle();

    style.setFont(font);

    // Create a cell and put a value in it.

    HSSFCell cell = row.createCell((short) 1);

    cell.setCellValue("This is a test of fonts");

    cell.setCellStyle(style);

    // Write the output to a file

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

11.自定义颜色

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet();

    HSSFRow row = sheet.createRow((short) 0);

    HSSFCell cell = row.createCell((short) 0);

    cell.setCellValue("Default Palette");

    //apply some colors from the standard palette,

    // as in the previous examples.

    //we'll use red text on a lime background

    HSSFCellStyle style = wb.createCellStyle();

    style.setFillForegroundColor(HSSFColor.LIME.index);

    style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    HSSFFont font = wb.createFont();

    font.setColor(HSSFColor.RED.index);

    style.setFont(font);

    cell.setCellStyle(style);

    //save with the default palette

    FileOutputStream out = new FileOutputStream("default_palette.xls");

    wb.write(out);

    out.close();

    //now, let's replace RED and LIME in the palette

    // with a more attractive combination

    // (lovingly borrowed from freebsd.org)

    cell.setCellValue("Modified Palette");

    //creating a custom palette for the workbook

    HSSFPalette palette = wb.getCustomPalette();

    //replacing the standard red with freebsd.org red

    palette.setColorAtIndex(HSSFColor.RED.index,

            (byte) 153,  //RGB red (0-255)

            (byte) 0,    //RGB green

            (byte) 0     //RGB blue

    );

    //replacing lime with freebsd.org gold

    palette.setColorAtIndex(HSSFColor.LIME.index, (byte) 255, (byte) 204, (byte) 102);

    //save with the modified palette

    // note that wherever we have previously used RED or LIME, the

    // new colors magically appear

    out = new FileOutputStream("modified_palette.xls");

    wb.write(out);

    out.close();

12.读和重写EXCEL文件

    POIFSFileSystem fs      =

            new POIFSFileSystem(new FileInputStream("workbook.xls"));

    HSSFWorkbook wb = new HSSFWorkbook(fs);

    HSSFSheet sheet = wb.getSheetAt(0);

    HSSFRow row = sheet.getRow(2);

    HSSFCell cell = row.getCell((short)3);

    if (cell == null)

        cell = row.createCell((short)3);

    cell.setCellType(HSSFCell.CELL_TYPE_STRING);

    cell.setCellValue("a test");

    // Write the output to a file

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

13.在EXCEL单元格中使用自动换行

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet s = wb.createSheet();

    HSSFRow r = null;

    HSSFCell c = null;

    HSSFCellStyle cs = wb.createCellStyle();

    HSSFFont f = wb.createFont();

    HSSFFont f2 = wb.createFont();

    cs = wb.createCellStyle();

    cs.setFont( f2 );

    //Word Wrap MUST be turned on

    cs.setWrapText( true );

    r = s.createRow( (short) 2 );

    r.setHeight( (short) 0x349 );

    c = r.createCell( (short) 2 );

    c.setCellType( HSSFCell.CELL_TYPE_STRING );

    c.setCellValue( "Use \n with word wrap on to create a new line" );

    c.setCellStyle( cs );

    s.setColumnWidth( (short) 2, (short) ( ( 50 * 8 ) / ( (double) 1 / 20 ) ) );

    FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );

    wb.write( fileOut );

    fileOut.close();

14.数字格式自定义

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("format sheet");

    HSSFCellStyle style;

    HSSFDataFormat format = wb.createDataFormat();

    HSSFRow row;

    HSSFCell cell;

    short rowNum = 0;

    short colNum = 0;

    row = sheet.createRow(rowNum++);

    cell = row.createCell(colNum);

    cell.setCellValue(11111.25);

    style = wb.createCellStyle();

    style.setDataFormat(format.getFormat("0.0"));

    cell.setCellStyle(style);

    row = sheet.createRow(rowNum++);

    cell = row.createCell(colNum);

    cell.setCellValue(11111.25);

    style = wb.createCellStyle();

    style.setDataFormat(format.getFormat("#,##0.0000"));

    cell.setCellStyle(style);

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

15.调整工作单位置

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("format sheet");

    HSSFPrintSetup ps = sheet.getPrintSetup();

    sheet.setAutobreaks(true);

    ps.setFitHeight((short)1);

    ps.setFitWidth((short)1);



    // Create various cells and rows for spreadsheet.

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

16.设置打印区域

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("Sheet1");

    wb.setPrintArea(0, "$A$1:$C$2");

    //sets the print area for the first sheet

    //Alternatively:

    //wb.setPrintArea(0, 0, 1, 0, 0) is equivalent to using the name reference (See the JavaDocs for more details)

    // Create various cells and rows for spreadsheet.

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

17.标注脚注

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("format sheet");

    HSSFFooter footer = sheet.getFooter()

    footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );



    // Create various cells and rows for spreadsheet.

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

18.使用方便的内部提供的函数

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet1 = wb.createSheet( "new sheet" );

    // Create a merged region

    HSSFRow row = sheet1.createRow( (short) 1 );

    HSSFRow row2 = sheet1.createRow( (short) 2 );

    HSSFCell cell = row.createCell( (short) 1 );

    cell.setCellValue( "This is a test of merging" );

    Region region = new Region( 1, (short) 1, 4, (short) 4 );

    sheet1.addMergedRegion( region );

    // Set the border and border colors.

    final short borderMediumDashed = HSSFCellStyle.BORDER_MEDIUM_DASHED;

    HSSFRegionUtil.setBorderBottom( borderMediumDashed,

        region, sheet1, wb );

    HSSFRegionUtil.setBorderTop( borderMediumDashed,

        region, sheet1, wb );

    HSSFRegionUtil.setBorderLeft( borderMediumDashed,

        region, sheet1, wb );

    HSSFRegionUtil.setBorderRight( borderMediumDashed,

        region, sheet1, wb );

    HSSFRegionUtil.setBottomBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);

    HSSFRegionUtil.setTopBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);

    HSSFRegionUtil.setLeftBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);

    HSSFRegionUtil.setRightBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);

    // Shows some usages of HSSFCellUtil

    HSSFCellStyle style = wb.createCellStyle();

    style.setIndention((short)4);

    HSSFCellUtil.createCell(row, 8, "This is the value of the cell", style);

    HSSFCell cell2 = HSSFCellUtil.createCell( row2, 8, "This is the value of the cell");

    HSSFCellUtil.setAlignment(cell2, wb, HSSFCellStyle.ALIGN_CENTER);

    // Write out the workbook

    FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );

    wb.write( fileOut );

    fileOut.close();

19.在工作单中移动行,调整行的上下位置

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("row sheet");

    // Create various cells and rows for spreadsheet.

    // Shift rows 6 - 11 on the spreadsheet to the top (rows 0 - 5)

    sheet.shiftRows(5, 10, -5);

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

20.选种指定的工作单

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("row sheet");

    sheet.setSelected(true);

    // Create various cells and rows for spreadsheet.

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

21.工作单的放大缩小

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet1 = wb.createSheet("new sheet");

    sheet1.setZoom(3,4);   // 75 percent magnification

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

22.头注和脚注

    HSSFWorkbook wb = new HSSFWorkbook();

    HSSFSheet sheet = wb.createSheet("new sheet");

    HSSFHeader header = sheet.getHeader();

    header.setCenter("Center Header");

    header.setLeft("Left Header");

    header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") +

                    HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic font and size 16");

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

//-------------------------------以上实例代码均来自官方网站

//-------------------------------POI中使用的颜色是用颜色索引来实现,如下:

   /*

    * 颜色对照表 数字代表颜色索引

        8: BLACK

        60: BROWN

        59: OLIVE_GREEN

        58: DARK_GREEN

        56: DARK_TEAL

        18: DARK_BLUE

        32: DARK_BLUE

        62: INDIGO

        63: GREY_80_PERCENT

        53: ORANGE

        19: DARK_YELLOW

        17: GREEN

        21: TEAL

        38: TEAL

        12: BLUE

        39: BLUE

        54: BLUE_GREY

        23: GREY_50_PERCENT

        10: RED

        52: LIGHT_ORANGE

        50: LIME

        57: SEA_GREEN

        49: AQUA

        48: LIGHT_BLUE

        20: VIOLET

        36: VIOLET

        55: GREY_40_PERCENT

        14: PINK

        33: PINK

        51: GOLD

        13: YELLOW

        34: YELLOW

        11: BRIGHT_GREEN

        35: BRIGHT_GREEN

        15: TURQUOISE

        35: TURQUOISE

        16: DARK_RED

        37: DARK_RED

        40: SKY_BLUE

        61: PLUM

        25: PLUM

        22: GREY_25_PERCENT

        45: ROSE

        43: LIGHT_YELLOW

        42: LIGHT_GREEN

        41: LIGHT_TURQUOISE

        27:LIGHT_TURQUOISE

        44: PALE_BLUE

        46: LAVENDER

        9: WHITE

        24: CORNFLOWER_BLUE

        26: LEMON_CHIFFON

        25: MAROON

        28: ORCHID

        29: CORAL

        30: ROYAL_BLUE

        31: LIGHT_CORNFLOWER_BLUE

    */

//----------------------------------------------------你可以按上面的方法来自定义颜色

   /*

    * 自定义颜色,去掉注释,贴加,其他则查看颜色对照表

   HSSFPalette palette = this.getCustomPalette();

   palette.setColorAtIndex(idx,

            i,  //RGB red (0-255)

            j,    //RGB green

            k     //RGB blue

         );        

   */
分享到:
评论

相关推荐

    POI操作Excel常用方法总结

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,尤其是Excel。这篇博客文章“POI操作Excel常用方法...通过阅读博客文章“POI操作Excel常用方法总结”,你可以获得更深入的实践经验和技巧。

    POI向excel中插入图片

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,包括Excel。在本文中,我们将深入探讨如何使用POI库向Excel工作簿中插入图片。这将涵盖相关的API,步骤以及一些实用技巧。 首先,我们需要...

    POI操作EXCEL文件

    - `java的POI操作Excel文件.doc`:这可能是另一个教程,讲解如何使用POI进行Excel文件的创建、修改和保存操作。 - `poi的常用api_收藏.pdf`:这份资料可能收集了POI库中常用的API方法,并提供了一些示例代码供参考...

    poi帮助文档附带poi操作excel例子

    在这个“poi帮助文档附带poi操作excel例子”中,我们可以深入学习如何使用POI进行Excel文件的操作。 首先,POI.chm文件是帮助文档,它包含了关于Apache POI的详细API参考和教程。这个文件将引导用户了解如何创建、...

    poi导出excel通用类

    标题“poi导出excel通用类”指的是使用...压缩包文件“excel-poi”可能包含了相关的示例代码或者已经封装好的POI通用类库,你可以解压并查看这些文件,以学习和理解如何实际操作Apache POI来创建自己的通用导出类。

    POI_Excel.zip_POI_POI_EXCEL_poi冻结窗口

    在这个主题“POI_Excel.zip_POI_POI_EXCEL_poi冻结窗口”中,我们将深入探讨如何使用Apache POI来操作Excel文档,包括单元格的合并、数据行的分组以及冻结窗口功能。 首先,让我们了解如何在Apache POI中合并单元格...

    poi操作excel的jar包及事例

    本压缩包提供的资源,包括所需的jar包和实际操作Excel的Java代码示例,是学习和实践使用Apache POI操作Excel的重要参考资料。 首先,Apache POI 是一个开源项目,它提供了HSSF和XSSF两个API,分别用于处理旧版的....

    POI读取Excel带格式数据

    当我们需要从大量的Excel数据中提取信息时,手动操作显然效率低下,这时就轮到Apache POI库大显身手了。Apache POI是一个用于读写Microsoft Office格式档案的开源Java库,特别适用于处理Excel文件。本篇将详细讲解...

    java运用poi把excel导入数据库demo

    Java中的Apache POI库是一个...通过学习和实践这个demo,你不仅可以掌握使用Apache POI处理Excel的基本技巧,还能了解到如何结合JDBC将数据导入Oracle数据库,这对于数据处理和ETL(提取、转换、加载)流程非常有用。

    Poi_Excel.zip_JAVA poi对excel文档处理_milllcb_sortkqh

    总的来说,这个压缩包提供的内容可能是一个关于如何使用Java的Apache POI库进行Excel文档操作的教程或实例集合,涵盖了创建、读取、更新和写入Excel文件的各种技巧和最佳实践。对于需要处理Excel的Java开发者来说,...

    Spring3 MVC + POI 实现 Excel与MySQL 的导入导出

    在IT领域,数据的导入导出是常见的需求,特别是在企业级应用中,Excel作为常用的表格...开发者应当熟练掌握Spring MVC的控制器设计、服务层业务逻辑处理,以及Apache POI的Excel操作技巧,以便在实际工作中灵活运用。

    poi操作excel

    Apache POI是一个开源库,主要用于读取和写入Microsoft Office格式的文件,特别是Excel文档。在Java编程中,Apache POI提供...通过对这些核心概念的理解和实践,你可以熟练掌握在Java中使用Apache POI操作Excel的技巧。

    java利用poi 操作Excel 可导入导出

    Java POI库是Java开发者用来读取、写入和修改Microsoft Office格式文件,特别是Excel文件的一个强大工具。在本文中,我们将深入探讨如何利用Java...通过学习这个示例,你应该能够掌握Java POI进行Excel操作的基本技巧。

    JAVA中的POI操作EXCEL,包含了POI用的几个JAR包 和学习源代码

    标题提到的"JAVA中的POI操作EXCEL",意味着我们将探讨如何使用POI API来处理Excel数据。描述中提到了包括不同版本的JAR包以及学习源代码,这表明资料包不仅提供了必要的库,还包含了一些示例代码,以帮助初学者快速...

    JAVA技巧:poi操作excel-中文与单元格样式的方法.docx

    本篇将详细讲解如何使用POI操作Excel,特别是处理中文字符以及设置单元格样式。 首先,导入必要的POI库: ```java import java.util.ArrayList; import java.util.Iterator; import org.apache.poi.hssf.usermodel....

    POI 读取Excel

    在阅读博客文章“https://username2.iteye.com/blog/1839515”时,可以找到更多关于Apache POI使用示例和技巧,包括异常处理、自定义解析策略等,这些都能帮助你在项目中更加熟练地操作Excel文件。通过不断实践和...

    java+poi+excel读取写入等操作所有jar(最新支持excel2013)+poi-bin-3.10-beta2-20130904源代码学习

    在Java中,使用POI库可以实现对Excel文件的读取、写入以及修改等操作,这对于数据分析、报表生成、自动化测试等场景非常实用。在你提到的资源中,"javaYdmxx80.zip"很可能包含了进行这些操作所需的jar文件,这些文件...

    poi 定制excel

    在博文链接中,虽然具体内容未给出,但通常会介绍如何使用Apache POI进行实际操作,可能包括示例代码、常见问题解决以及性能优化技巧。 至于“工具”标签,可能意味着该博文还会提到一些辅助工具或库,如使用Maven...

    java的POI操作Excel文件.pdf

    总之,Java的Apache POI库提供了丰富的功能来操作Excel文件,包括创建、读取和修改工作表、单元格、样式等。虽然在某些特定操作(如设置分页符和复制行)上可能需要额外的编程技巧,但通过理解POI的API和源码,可以...

Global site tag (gtag.js) - Google Analytics