`
ldsjdy
  • 浏览: 150865 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

POI 生成XLS实例

 
阅读更多
转载至:
http://www.4ucode.com/Study/Topic/697242

ackage test;

import java.io.FileOutputStream;  
import java.io.IOException;  
import java.util.Date;  
import org.apache.poi.hssf.usermodel.HSSFCell;  
import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
import org.apache.poi.hssf.usermodel.HSSFDataFormat;  
import org.apache.poi.hssf.usermodel.HSSFFont;
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.hssf.util.HSSFColor;  
import org.apache.poi.ss.util.CellRangeAddress;
 
public class CreateCells {  
    /** 
     * 文档对象 HSSFWorkbook  ;表单对象 HSSFSheet ;行对象 HSSFRow ;列对象 HSSFCell 
     * excell的格子单元 HSSFFont excell字体 HSSFName 名称 HSSFDataFormat 日期格式 HSSFHeader 
     * sheet头 HSSFFooter sheet尾 HSSFCellStyle cell样式 
     */ 
    public static void main(String[] args) throws IOException {
     // 建立新HSSFWorkbook对象  
        HSSFWorkbook workbook = new HSSFWorkbook();  
        // 建立新的sheet对象  
        // Create a row and put some cells in it.Rows are 0 based.
        HSSFSheet sheet = workbook.createSheet("表单1");
        // 建立新行  
        // Create a cell and put a value in it.  
        HSSFRow row = sheet.createRow((short) 0);
        //修改当前行 默认行高  列宽
        //行高
        sheet.setDefaultRowHeightInPoints(10);
        //列款宽
        sheet.setDefaultColumnWidth(10);
        //设置特定单元格的宽度
        sheet.setColumnWidth(4, 20*256);
        sheet.setColumnWidth(5, 30*256);
        sheet.setColumnWidth(6, 30*256);
       
        // 整数类型的cell样式  
        //HSSFDataFormat.getBuiltinFormat("0.00")  字符串的内容是   Excel有的格式
        HSSFCellStyle numStyle = workbook.createCellStyle();  
        numStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0"));
        //创建1列
        HSSFCell cellNum = row.createCell(0);
        cellNum.setCellValue(1);
        cellNum.setCellStyle(numStyle);
       
       
        // 浮点类型的cell样式
        HSSFCellStyle doubleStyle = workbook.createCellStyle();  
        doubleStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
       
        HSSFCell cellDouble = row.createCell(1);
        cellDouble.setCellValue(1.2);
        cellDouble.setCellStyle(doubleStyle);
       
       
        //字符串类型的cell样式
        HSSFCellStyle stringStyle = workbook.createCellStyle();  
        stringStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("G/通用格式"));
       
        HSSFCell cellString= row.createCell(2);
        cellString.setCellValue("test");
        cellString.setCellStyle(stringStyle);
       
        //添加cell布尔类型的值 
        row.createCell(3).setCellValue(true);
       
       
        //日期类型的cell样式   yyyy-m-d  h:mm:ss AM/PM
        HSSFCellStyle dateStyle = workbook.createCellStyle(); 
        dateStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));
        HSSFCell dCell = row.createCell(4);
        dCell.setCellValue(new Date());
        dCell.setCellStyle(dateStyle);
       
       
        //设置cell编码解决中文高位字节截断
        HSSFCell csCell = row.createCell(5);
        csCell.setCellType(HSSFCell.ENCODING_UTF_16);
        csCell.setCellValue("中文测试_Chinese Words Test");  
 
        // 设置  背景色     边框
        HSSFCellStyle style1 = workbook.createCellStyle();
        //前景色和后景色都要有  否则会出网格
        style1.setFillForegroundColor(new HSSFColor.YELLOW().getIndex());  
        style1.setFillBackgroundColor(new HSSFColor.YELLOW().getIndex());  
        //设置边框
        style1.setBorderBottom((short) 1);  
        style1.setBorderTop((short) 1);
        style1.setBorderLeft((short) 1);
        style1.setBorderRight((short) 1);  
       
        //问题:用poi将一个cell中的字体设置成了红色,结果用excell打开后,这个cell中只有前面一个或几个字为红色
        //HSSFFont  font  =  workbook.createFont();  font.setColor(HSSFFont.COLOR_RED); 
        //先從Cell中把HSSFRichTextString取出來
        //然后HSSFRichTextString對象.applyFont(font)
        //最后再把HSSFRichTextString對象set回到cell中就行了。。。。。
       
        //设置字体样式=====================================
        HSSFFont  font  =  workbook.createFont();
        //字体位置  上 下 左 右
        //font.setTypeOffset((short)0);
        //字体宽度
        font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
        //字体高度
        font.setFontHeightInPoints((short)8);
        //字体颜色
        font.setColor(HSSFFont.COLOR_RED); 
        //=================================================
        style1.setFont(font);
       
        /** 
         * 注意这句代码, style1.setFillPattern, 如果你在你的程序中不设置fill pattern,那么 
         * 你上面设置的前景色和背景色就显示不出来.网络上很多文章都没有设置fillpattern
         * 如果不改变样式  不需要添加(如:居中)
         */ 
        style1.setFillPattern(HSSFCellStyle.SPARSE_DOTS);
       
       
        HSSFCell cellCH = row.createCell(6);
        cellCH.setCellValue("中文测试_Chinese Words Testsss");  
        cellCH.setCellStyle(style1);
       
       
        //货币样式
        HSSFCellStyle moneyStyle = workbook.createCellStyle();  
        moneyStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0"));
        HSSFCell cell12 = row.createCell(7);
        cell12.setCellValue((double) 10000000);
        cell12.setCellStyle(moneyStyle);
 
        // 错误显示
        row.createCell(8).setCellType(HSSFCell.CELL_TYPE_ERROR);
        //合并单元格
        int startRowNo=0;
        int endRowNo=0;
        int startCellNo=9;
        int endCellNo=10;
        sheet.addMergedRegion(new CellRangeAddress(startRowNo, endRowNo,startCellNo, endCellNo));
  HSSFCell cell = row.createCell(9);
  cell.setCellValue("合并");
  
  //即垂直居中对齐且水平居中对齐    居中后背景颜色变化了
  HSSFCellStyle style = workbook.createCellStyle();  
  style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直  
  style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平  
  //如果不改变样式  不需要添加
  //style.setFillPattern(HSSFCellStyle.SPARSE_DOTS);
  cell.setCellStyle(style);
  
        FileOutputStream fileOut = new FileOutputStream("e:/workbook.xls");  
        workbook.write(fileOut);  
        fileOut.close();  
    }  
}  
分享到:
评论

相关推荐

    android中poi生成word文档和excel文档

    在标题“android中poi生成word文档和excel文档”中提到的使用POI库生成Word和Excel文档,主要涉及到以下几个关键知识点: 1. **Apache POI 概述**:Apache POI 是一个开源项目,提供了一套API,用于读写Microsoft ...

    poi生成报表,简单的poi实例

    在本实例中,我们将关注使用 Apache POI 来生成 Excel 报表。这个简单的 POI 实例非常适合初学者参考,它能帮助你快速理解和应用 POI 库。 首先,让我们了解 POI 的核心组件——HSSF 和 XSSF。HSSF 是用来处理 .xls...

    poi操作ppt生成图表完整工程.zip

    Apache POI 是一个开源项目,专门用于处理微软的Office文档格式,如Word(.doc, .docx)、Excel(.xls, .xlsx)以及PowerPoint(.ppt, .pptx)。在本“poi操作ppt生成图表完整工程”中,我们将会深入探讨如何使用...

    poi使用和实例的文档

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)和PowerPoint(.ppt, .pptx)。这个压缩包中的文档和PDF提供了关于如何使用Apache POI进行操作的...

    POI生成doc文档和docx文档相关jar包

    在这个场景中,你提到的"POI生成doc文档和docx文档相关jar包"是指使用Apache POI库在Android平台上创建Word文档的开发资源。 Apache POI提供了Java API,使得开发者可以在不依赖Microsoft Office的情况下,读取、...

    java生成xls文件

    在Java编程环境中,生成XLS文件(Excel 97-2003格式)是一项常见的任务,特别是在数据处理、报表生成或数据导出时。XLS文件格式是Microsoft Excel广泛使用的早期版本,允许用户存储表格数据、公式以及图表。本教程将...

    java Poi 简单实例

    总的来说,Java POI为开发者提供了强大的工具,可以方便地在Java程序中操作Excel和Word文档,实现数据导入导出、报告生成等多种功能。通过不断实践和学习,你可以掌握更多的技巧,满足更复杂的业务需求。

    POI 生成、解析excel,demo

    这个“POI 生成、解析excel,demo”很显然是一个使用 Apache POI 库创建和解析 Excel 文档的示例。Apache POI 提供了 Java API,使得开发者能够方便地在 Java 应用程序中读取、写入以及修改 Excel 文件,无论是老版本...

    poi3.17详情版,附带实例代码,可参考

    1. **Excel处理**:POI提供HSSF和XSSF两个API,分别用于处理老版本的.BIFF8格式(.xls)和新版本的OOXML格式(.xlsx)。你可以创建新的工作簿,添加工作表,插入单元格,设置公式,格式化样式,以及读取和修改现有...

    poi开发实例

    总的来说,Apache POI是Java开发人员处理Office文件的强大工具,无论你是要自动化报告生成、数据导入导出还是进行其他相关操作,它都能提供丰富的API和功能。通过不断实践和学习,你将能够充分利用这个库,实现更多...

    poi动态生成导入模板,动态下拉菜单

    在IT行业中,Apache POI 是一个非常著名的Java库,它允许开发者读取、写入和修改Microsoft Office格式的文件,包括Excel(XLS和XLSX)。本话题聚焦于使用POI来动态生成带有下拉菜单的Excel导入模板,这在数据处理、...

    POI 生成Word文档

    Apache POI 是一个开源项目,专门用于处理微软的Office文档格式,如Word(.doc 和 .docx)、Excel(.xls 和 .xlsx)以及PowerPoint(.ppt 和 .pptx)。在Java环境中,POI 提供了API来读取、创建和修改这些文档。本...

    POI很好的应用实例

    例如,可以创建一个服务接口,接收请求参数,使用POI生成Excel文件,并返回给前端下载。 总的来说,Apache POI是一个强大且灵活的工具,它使得Java开发者在处理Office文档时有了更多的可能性。通过熟练掌握POI,...

    POI操作Excel实例源码

    在本实例源码中,我们将深入探讨如何利用POI进行Excel的读写操作,这对于数据处理、报告生成或者自动化任务尤其有用。下面我们将详细讲解相关知识点。 **1. Apache POI介绍** Apache POI是一个开源项目,它提供了...

    maven2项目读取读取多txt文件生成多个xls文件实例

    首先,这个项目的核心在于读取txt文件并生成xls文件。txt文件通常用于存储纯文本数据,而xls文件是Microsoft Excel用于存储表格数据的格式。在这个实例中,开发者可能使用Java的IO流来读取txt文件的内容,并使用...

    poi生成ecel表格加上写的一个生成类库

    这个"poi生成excel表格加上写的一个生成类库"可能是某位开发者基于Apache POI创建的自定义工具库,用于简化和优化Excel文件的生成过程。 Apache POI 提供的主要类有 HSSFWorkbook(用于处理老版本的 .xls 文件)和 ...

    POI实例+JAR+API

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel(.xlsx, .xls),Word(.doc, .docx)和PowerPoint(.ppt, .pptx)。这个“POI实例+JAR+API”可能包含了一些关于如何使用Apache POI...

    jsp利用POI生成Excel并在页面中导出的示例.docx

    本示例将详细介绍如何在JSP中利用POI库生成Excel文件,并直接在浏览器中导出。 首先,确保在项目中已经引入了Apache POI的依赖库。POI提供了对Excel 2003(HSSF)和Excel 2007以上版本(XSSF)的支持。在这个示例中...

    poi实例

    【标题】:poi实例 【描述】:在Java开发中,Apache POI 是一个非常流行的库,用于处理Microsoft Office格式的文件,特别是Excel。本实例将深入探讨如何使用Apache POI来导出数据到Excel,并在Servlet环境中实现这...

    java操作xls实例加代码

    在Java编程环境中,处理Excel(通常指xls格式,属于老版本的Microsoft Office Excel)文件是一项常见的任务,尤其在数据导入导出、报表生成或者数据分析等场景。本篇将详细讲解如何使用Java进行xls文件的操作,并...

Global site tag (gtag.js) - Google Analytics