`

POI学习笔记(三)

    博客分类:
  • java
阅读更多

14. 自定义颜色

      HSSF:

 

Java代码 复制代码
  1. HSSFWorkbook wb = new HSSFWorkbook();   
  2.     HSSFSheet sheet = wb.createSheet();   
  3.     HSSFRow row = sheet.createRow((short0);   
  4.     HSSFCell cell = row.createCell((short0);   
  5.     cell.setCellValue("Default Palette");   
  6.   
  7.     //apply some colors from the standard palette,   
  8.     // as in the previous examples.   
  9.     //we'll use red text on a lime background   
  10.   
  11.     HSSFCellStyle style = wb.createCellStyle();   
  12.     style.setFillForegroundColor(HSSFColor.LIME.index);   
  13.     style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);   
  14.   
  15.     HSSFFont font = wb.createFont();   
  16.     font.setColor(HSSFColor.RED.index);   
  17.     style.setFont(font);   
  18.   
  19.     cell.setCellStyle(style);   
  20.   
  21.     //save with the default palette   
  22.     FileOutputStream out = new FileOutputStream("default_palette.xls");   
  23.     wb.write(out);   
  24.     out.close();   
  25.   
  26.     //now, let's replace RED and LIME in the palette   
  27.     // with a more attractive combination   
  28.     // (lovingly borrowed from freebsd.org)   
  29.   
  30.     cell.setCellValue("Modified Palette");   
  31.   
  32.     //creating a custom palette for the workbook   
  33.     HSSFPalette palette = wb.getCustomPalette();   
  34.   
  35.     //replacing the standard red with freebsd.org red   
  36.     palette.setColorAtIndex(HSSFColor.RED.index,   
  37.             (byte153,  //RGB red (0-255)   
  38.             (byte0,    //RGB green   
  39.             (byte0     //RGB blue   
  40.     );   
  41.     //replacing lime with freebsd.org gold   
  42.     palette.setColorAtIndex(HSSFColor.LIME.index, (byte255, (byte204, (byte102);   
  43.   
  44.     //save with the modified palette   
  45.     // note that wherever we have previously used RED or LIME, the   
  46.     // new colors magically appear   
  47.     out = new FileOutputStream("modified_palette.xls");   
  48.     wb.write(out);   
  49.     out.close();  
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();

 

XSSF:

 

Java代码 复制代码
  1. XSSFWorkbook wb = new XSSFWorkbook();   
  2.     XSSFSheet sheet = wb.createSheet();   
  3.     XSSFRow row = sheet.createRow(0);   
  4.     XSSFCell cell = row.createCell( 0);   
  5.     cell.setCellValue("custom XSSF colors");   
  6.   
  7.     XSSFCellStyle style1 = wb.createCellStyle();   
  8.     style1.setFillForegroundColor(new XSSFColor(new java.awt.Color(1280128)));   
  9.     style1.setFillPattern(CellStyle.SOLID_FOREGROUND);  
XSSFWorkbook wb = new XSSFWorkbook();
    XSSFSheet sheet = wb.createSheet();
    XSSFRow row = sheet.createRow(0);
    XSSFCell cell = row.createCell( 0);
    cell.setCellValue("custom XSSF colors");

    XSSFCellStyle style1 = wb.createCellStyle();
    style1.setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128)));
    style1.setFillPattern(CellStyle.SOLID_FOREGROUND);

 

 

15. 读取和重写工作薄

 

Java代码 复制代码
  1. InputStream inp = new FileInputStream("workbook.xls");   
  2.     //InputStream inp = new FileInputStream("workbook.xlsx");   
  3.   
  4.     Workbook wb = WorkbookFactory.create(inp);   
  5.     Sheet sheet = wb.getSheetAt(0);   
  6.     Row row = sheet.getRow(2);   
  7.     Cell cell = row.getCell(3);   
  8.     if (cell == null)   
  9.         cell = row.createCell(3);   
  10.     cell.setCellType(Cell.CELL_TYPE_STRING);   
  11.     cell.setCellValue("a test");   
  12.   
  13.     // Write the output to a file   
  14.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");   
  15.     wb.write(fileOut);   
  16.     fileOut.close();   
  17.                       
InputStream inp = new FileInputStream("workbook.xls");
    //InputStream inp = new FileInputStream("workbook.xlsx");

    Workbook wb = WorkbookFactory.create(inp);
    Sheet sheet = wb.getSheetAt(0);
    Row row = sheet.getRow(2);
    Cell cell = row.getCell(3);
    if (cell == null)
        cell = row.createCell(3);
    cell.setCellType(Cell.CELL_TYPE_STRING);
    cell.setCellValue("a test");

    // Write the output to a file
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    wb.write(fileOut);
    fileOut.close();
                    

 

 

16. 单元格内容换行

 

Java代码 复制代码
  1. Workbook wb = new XSSFWorkbook();   //or new HSSFWorkbook();   
  2.     Sheet sheet = wb.createSheet();   
  3.   
  4.     Row row = sheet.createRow(2);   
  5.     Cell cell = row.createCell(2);   
  6.     cell.setCellValue("Use \n with word wrap on to create a new line");   
  7.   
  8.     //to enable newlines you need set a cell styles with wrap=true   
  9.     CellStyle cs = wb.createCellStyle();   
  10.     cs.setWrapText(true);   
  11.     cell.setCellStyle(cs);   
  12.   
  13.     //increase row height to accomodate two lines of text   
  14.     row.setHeightInPoints((2*sheet.getDefaultRowHeightInPoints()));   
  15.   
  16.     //adjust column width to fit the content   
  17.     sheet.autoSizeColumn((short)2);   
  18.   
  19.     FileOutputStream fileOut = new FileOutputStream("ooxml-newlines.xlsx");   
  20.     wb.write(fileOut);   
  21.     fileOut.close();  
Workbook wb = new XSSFWorkbook();   //or new HSSFWorkbook();
    Sheet sheet = wb.createSheet();

    Row row = sheet.createRow(2);
    Cell cell = row.createCell(2);
    cell.setCellValue("Use \n with word wrap on to create a new line");

    //to enable newlines you need set a cell styles with wrap=true
    CellStyle cs = wb.createCellStyle();
    cs.setWrapText(true);
    cell.setCellStyle(cs);

    //increase row height to accomodate two lines of text
    row.setHeightInPoints((2*sheet.getDefaultRowHeightInPoints()));

    //adjust column width to fit the content
    sheet.autoSizeColumn((short)2);

    FileOutputStream fileOut = new FileOutputStream("ooxml-newlines.xlsx");
    wb.write(fileOut);
    fileOut.close();

 

 换行的步骤:

  • 在需要换行的地方加上\n   cell.setCellValue("Use \n with word wrap on to create a new line");
  • 设置行高 row.setHeightInPoints((2*sheet.getDefaultRowHeightInPoints()));
  • 设置列只适应宽度 sheet.autoSizeColumn((short)2);

 17. 数据格式化

 

Java代码 复制代码
  1. public void dataFormat() throws Exception{   
  2.         Workbook wb = new HSSFWorkbook();   
  3.         Sheet sheet = wb.createSheet("format sheet");   
  4.         CellStyle style;   
  5.         DataFormat format = wb.createDataFormat();   
  6.         Row row;   
  7.         Cell cell;   
  8.         short rowNum = 0;   
  9.         short colNum = 0;   
  10.   
  11.         row = sheet.createRow(rowNum++);   
  12.         cell = row.createCell(colNum);   
  13.         cell.setCellValue(11111.25);   
  14.         style = wb.createCellStyle();   
  15.         style.setDataFormat(format.getFormat("0.0"));   
  16.         cell.setCellStyle(style);   
  17.   
  18.         row = sheet.createRow(rowNum++);   
  19.         cell = row.createCell(colNum);   
  20.         cell.setCellValue(1111.25);   
  21.         style = wb.createCellStyle();   
  22.         style.setDataFormat(format.getFormat("#,###.0000"));   
  23.         cell.setCellStyle(style);   
  24.   
  25.         FileOutputStream fileOut = new FileOutputStream("workbook.xls");   
  26.         wb.write(fileOut);   
  27.         fileOut.close();   
  28.   
  29.     }  
public void dataFormat() throws Exception{
		Workbook wb = new HSSFWorkbook();
	    Sheet sheet = wb.createSheet("format 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(11111.25);
	    style = wb.createCellStyle();
	    style.setDataFormat(format.getFormat("0.0"));
	    cell.setCellStyle(style);

	    row = sheet.createRow(rowNum++);
	    cell = row.createCell(colNum);
	    cell.setCellValue(1111.25);
	    style = wb.createCellStyle();
	    style.setDataFormat(format.getFormat("#,###.0000"));
	    cell.setCellStyle(style);

	    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
	    wb.write(fileOut);
	    fileOut.close();

	}

 

18. 设置打印区域

 

Java代码 复制代码
  1. Workbook wb = new HSSFWorkbook();   
  2.     Sheet sheet = wb.createSheet("Sheet1");   
  3.     //sets the print area for the first sheet   
  4.     wb.setPrintArea(0"$A$1:$C$2");   
  5.        
  6.     //Alternatively:   
  7.     wb.setPrintArea(   
  8.             0//sheet index   
  9.             0//start column   
  10.             1//end column   
  11.             0//start row   
  12.             0  //end row   
  13.     );   
  14.   
  15.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");   
  16.     wb.write(fileOut);   
  17.     fileOut.close();  
Workbook wb = new HSSFWorkbook();
    Sheet sheet = wb.createSheet("Sheet1");
    //sets the print area for the first sheet
    wb.setPrintArea(0, "$A$1:$C$2");
    
    //Alternatively:
    wb.setPrintArea(
            0, //sheet index
            0, //start column
            1, //end column
            0, //start row
            0  //end row
    );

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    wb.write(fileOut);
    fileOut.close();

 

19. 设置页脚

 

   

Java代码 复制代码
  1. HSSFWorkbook wb = new HSSFWorkbook();   
  2.     HSSFSheet sheet = wb.createSheet("format sheet");   
  3.     HSSFFooter footer = sheet.getFooter();   
  4.   
  5.     footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );   
  6.   
  7.   
  8.   
  9.     // Create various cells and rows for spreadsheet.   
  10.   
  11.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");   
  12.     wb.write(fileOut);   
  13.     fileOut.close();  
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();

 

  备注:只有在打印预览的时候页脚才显示出来。

 20. 选中一个Sheet

Java代码 复制代码
  1. Workbook wb = new HSSFWorkbook();   
  2.   Sheet sheet = wb.createSheet("row sheet");   
  3.   sheet.setSelected(true);  
  Workbook wb = new HSSFWorkbook();
    Sheet sheet = wb.createSheet("row sheet");
    sheet.setSelected(true);

 

 21. 设置方法倍率

Java代码 复制代码
  1. Workbook wb = new HSSFWorkbook();   
  2.    Sheet sheet1 = wb.createSheet("new sheet");   
  3.    sheet1.setZoom(3,4);   // 75 percent magnification  
 Workbook wb = new HSSFWorkbook();
    Sheet sheet1 = wb.createSheet("new sheet");
    sheet1.setZoom(3,4);   // 75 percent magnification

 Zoom是一个分数,例如如果方法75%,那么分子为3,分母为4。

 

  22. 设置打印时的页宽和页高

 

Java代码 复制代码
  1. Workbook wb = new HSSFWorkbook();   
  2.     Sheet sheet = wb.createSheet("format sheet");   
  3.     PrintSetup ps = sheet.getPrintSetup();   
  4.   
  5.     sheet.setAutobreaks(true);   
  6.   
  7.     ps.setFitHeight((short)1);   
  8.     ps.setFitWidth((short)1);   
  9.   
  10.   
  11.     // Create various cells and rows for spreadsheet.   
  12.   
  13.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");   
  14.     wb.write(fileOut);   
  15.     fileOut.close();  
Workbook wb = new HSSFWorkbook();
    Sheet sheet = wb.createSheet("format sheet");
    PrintSetup 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();

 

23. 移动行

 

Java代码 复制代码
  1. public void shiftRow() throws Exception{   
  2.         Workbook wb = new HSSFWorkbook();   
  3.         Sheet sheet = wb.createSheet("row sheet");   
  4.   
  5.         for(int i=0;i<20;i++){   
  6.             Row row=sheet.createRow(i);   
  7.             Cell cell=row.createCell(0);   
  8.             cell.setCellValue(""+i);   
  9.         }   
  10.         // Shift rows 6 - 11 on the spreadsheet to the top (rows 0 - 5)   
  11.         //把第6-11行向上移动5行   
  12.         sheet.shiftRows(510,-5);   
  13.         FileOutputStream fileOut = new FileOutputStream("workbook.xls");   
  14.         wb.write(fileOut);   
  15.         fileOut.close();   
  16.     }  
分享到:
评论

相关推荐

    POI学习笔记详细说明

    POI学习笔记第二版更详细的POI学习笔记第二版更详细的

    POI学习笔记

    "POI学习笔记" POI(Apache POI)是一款流行的Java库,用于处理Microsoft Office文件格式,包括Excel、Word、PowerPoint等。POI提供了一个简洁和灵活的API,允许开发者轻松地读取、写入和操作Office文件。 POI的...

    POI的学习笔记

    ### POI学习笔记知识点解析 #### 一、POI简介 Apache POI是一个开源的Java API,用于处理Microsoft Office格式的文件,包括Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx) 和 Word (.doc, .docx)。POI提供了一套...

    java学习笔记模版

    【Java学习笔记模版】 Java实习工程师在学习过程中,会涉及到许多关键知识点,尤其是在企业级开发的场景下。从给出的四天学习笔记来看,实习生正在逐步掌握Java Web开发的基础和核心技能。以下是对这些知识点的详细...

    软考中级网工考试学习笔记

    1、包括网工第五版较全面的学习笔记(近4万字)、常用检测命令实践图、协议神图、常见编码图、网工简单的100条知识点 2、笔记目录如: 第一章 计算机基础知识 一、数据表示 (一) 定点和浮点和整数 二、逻辑计算机 ...

    OA (ssh) 基本实现(poi 生成 Excel , struts2动态下载 mysql数据库文件) 学习笔记(含源代码)

    OA (ssh) 基本实现(poi 生成 Excel , struts2动态下载 mysql数据库文件) 学习笔记(含源代码) 借鉴 风中叶 老师的视频,写的文章,代码比较详实。 说了很多我的看法,和思考,做了充分的日志

    POI,读取文件工具类和笔记

    Apache POI 是一个开源项目,专门用于处理 Microsoft Office 格式的文件,如 Excel、...通过不断实践和学习,你可以利用 POI 完成更多复杂的任务,如处理复杂的公式、应用丰富的格式和样式,以及实现高性能的文件操作。

    java学习笔记

    Java学习笔记涵盖了大量的编程知识,主要集中在Java语言本身、数据库技术以及常见的企业级框架上。以下是对这些知识点的详细说明: 1. **Java基础**:Java是一种广泛使用的面向对象的编程语言,以其“一次编写,...

    Java操作EXCEL 学习笔记

    本学习笔记将深入探讨如何使用Apache POI库来实现Java对Excel的高效操作。 Apache POI是一个开源项目,提供了读写Microsoft Office格式文档的能力,包括Excel(.xlsx和.xls)。在Java中,我们可以借助POI库来创建、...

    Java最全学习资料+面试题+DOS命令+设计模式+Excel技巧+java学习笔记

    这份压缩包中的资源全面覆盖了Java的学习和应用,包括学习资料、面试题、DOS命令、设计模式以及Excel技巧和Java学习笔记。让我们逐一探讨这些知识点。 1. **Java学习资料**:Java学习资料通常包括基础语法、面向...

    百度地图学习笔记

    ### 百度地图学习笔记知识点总结 #### 一、初始化地图与设置地图状态 在进行任何操作之前,首先需要初始化百度地图 SDK,并设置地图的基本状态。以下为几个关键步骤: 1. **初始化 SDK:** - 在使用百度地图 SDK...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    本学习笔记主要围绕Spring MVC的使用、配置和核心组件进行深入探讨,旨在帮助开发者更好地理解和掌握这一框架。 在Spring MVC中,Model代表业务逻辑和数据,View负责数据的展示,而Controller处理用户请求,协调...

    【狂神说】笔记(史上最全)含各类md笔记.zip

    【狂神说】笔记系列是全面且深入的IT学习资源,涵盖了从基础到进阶的各种技术领域。这个压缩包包含了JavaScript、JavaWeb、Java基础、MyBatis、MySQL、Redis、Spring、Spring Boot以及SpringMVC和Vue等多个关键知识...

    jxl包的学习笔记。。。。。。

    本篇文章将深入探讨`jxl`包的学习和应用,通过一系列实例帮助你理解和掌握这个库的核心功能。 ### 1. 安装与引入 首先,你需要在项目中添加`jxl`库。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖: `...

    狂神说笔记_全.zip

    【狂神说笔记_全.zip】是一个包含狂神说系列的Java学习资源的压缩包,主要涉及了Java基础、Spring Boot、JavaWeb、微服务、分布式系统、消息队列、并发编程、前端技术、数据库以及容器化技术等多个IT领域的核心知识...

    Greatly_repository:Spring Boot 学习笔记

    Spring Boot 学习笔记 基础篇 #提升篇 15.SpringBoot之集成Shiro 16.SpringBoot之使用mybatis-generator自动生成代码 17.SpringBoot之使用lombok编码 18.SpringBoot之初始化数据 19.SpringBoot之使用POI开发Excel...

    基于知识图谱的兴趣点推送.zip

    DeepMove是一种结合了深度学习与知识图谱的推荐系统,它利用用户的历史轨迹数据和知识图谱中的信息,构建深度学习模型来预测用户的未来移动行为,从而进行POI推荐。 标签“知识图谱”表明了整个项目的核心技术。...

    黑马乐优商城19天全套视频加配套笔记

    【标题】"黑马乐优商城19天全套视频加配套笔记"揭示了这是一套针对乐优商城项目的全面教学资源,由知名IT教育机构黑马程序员提供,并且是2018年的最新版本。课程可能涵盖了从项目启动到完成的全过程,总计19天的学习...

    自学前后端的全部资料笔记资源

    同时,JUnit(依赖于第25-28行)的引入意味着在学习过程中,测试驱动开发(TDD)也是一个重要的实践点,它能帮助确保代码的质量和可维护性。 自学前后端开发不仅仅局限于前端的HTML、CSS、JavaScript,还包括后端的...

Global site tag (gtag.js) - Google Analytics