`

poi生成Excel文件【带样式和格式】

    博客分类:
  • java
阅读更多

package 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();  
    }  

分享到:
评论

相关推荐

    java的poi生成excel图表demo

    通过这个“java的poi生成excel图表demo”,我们可以学习如何利用POI创建动态的、数据驱动的Excel曲线图,进一步提升数据的可视性和理解性。这个压缩包中的“EexcelChart”可能是示例代码、测试数据或生成的Excel文件...

    Java POI 生成Excel时显示货币格式

    在使用Java POI生成Excel时,为了使数据更易读和专业,我们经常需要设置单元格的格式,特别是当涉及到金额时,使用货币格式可以使数字更加直观。以下是一段示例代码,展示了如何在Excel单元格中设置货币格式: ```...

    java poi 根据excel模板生成excel文件

    Java POI库是Apache软件基金会开发的一个开源项目,专门用于读写Microsoft Office格式的文件,包括Excel。在本文中,我们将深入探讨如何使用Java POI库根据已有的Excel模板生成新的Excel文件。 首先,理解“模板”...

    Java POI 生成Excel(xlsx)文件

    下面将详细介绍如何使用Java POI库来生成Excel(xlsx)文件。 首先,我们需要引入Apache POI的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.poi <artifactId>poi-...

    JAVA使用POI生成Excel文件

    这篇博客"JAVA使用POI生成Excel文件"主要介绍了如何利用Apache POI来创建和操作Excel文档。 首先,我们需要了解Apache POI的基本概念。Apache POI是Apache软件基金会的一个开源项目,它提供了Java API,使得开发者...

    使用poi生成Excel所需要的jar包

    在这个场景中,"使用poi生成Excel所需要的jar包"指的是利用Apache POI库来生成Excel文件。POI-3.9.jar是Apache POI项目的一个版本,包含了所有必要的类和方法,让我们可以处理Excel的XLS和XLSX格式。 首先,Apache ...

    POI生成Excel POI操作Excel POI读取Excel POI类库

    **POI生成Excel** 生成Excel文件主要涉及以下步骤: 1. **创建Workbook对象**:这是Excel文件的顶级容器,可以是XSSFWorkbook(.xlsx格式)或HSSFWorkbook(.xls格式)。 2. **创建Sheet对象**:Sheet代表Excel...

    POI 生成EXCEL2007【含例子】

    标题 "POI 生成EXCEL2007【含例子】" 涉及到的知识点主要集中在Apache POI库的使用上,这是一个强大的Java API,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel文件。在这个场景中,重点是创建和操作...

    poi生成excel实例

    可以自动调整excel列宽(这个不错).files"、"使用POI生成Excel文件(详细).files":这些可能是与上述HTML文件相关的资源文件,如图片、样式表或JavaScript,用于增强教程的交互性和视觉效果。 总的来说,这些文档和...

    Apache poi 操作 excel 文件压缩包

    在Apache POI中,xmlbeans被用来解析和生成OOXML格式的Excel文件,因为OOXML本质上是一种基于XML的文件格式。 4. **dom4j**: 这是一个强大的Java XML API,用于读写XML文档。在处理XML数据时,POI可能会用到dom4j来...

    使用POI生成EXCEL

    标题中的“使用POI生成EXCEL”指的是使用Apache POI库来创建Microsoft Excel文件的过程。Apache POI是一个开源项目,提供了Java API,可以用来读写Microsoft Office格式的文件,包括Excel(.xls和.xlsx格式)。这个...

    POI操作Excel完美生成水印

    在Java编程领域,Apache POI 是一个非常流行的库,它允许开发者读取、写入和修改Microsoft Office格式的文件,包括Excel(XLS和XLSX)。本教程将深入探讨如何利用Apache POI来在Excel文件中完美地生成水印。水印通常...

    SpringBoot整合poi实现Excel文件的导入和导出.pdf

    Apache POI 是一个流行的Java库,它允许开发者读写Microsoft Office格式的文件,包括Excel。下面我们将详细介绍如何在SpringBoot中整合POI来实现Excel的导入和导出,以及如何利用ExcelFormatUtil工具类进行单元格...

    POI生成excel报表

    ### POI生成Excel报表知识点详解 #### 一、Apache POI简介 Apache POI是Apache软件基金会的一个开源项目,主要用于处理Microsoft Office格式的文件。它提供了API来读写Word、Excel等Office文档格式。其中,处理...

    Java POI根据模板生成Excel(xlsx)文件

    Java POI库是一个广泛使用的开源项目,专门用于处理Microsoft Office格式的文件,包括Excel的.xls和.xlsx文件。在本示例中,我们关注的是如何利用Java POI来根据模板生成.xlsx格式的Excel文件。这个过程涉及到对...

    POI和JFreeChart框架实现生成Excel文件(生成 统计图)

    ### POI和JFreeChart框架实现生成Excel文件(生成统计图) #### 一、概述 在实际工作中,经常需要将数据导出至Excel文件中,并且为了更直观地展示数据,常常还需要在Excel中添加统计图。Apache POI 和 JFreeChart ...

    POI 解析excel,转成html页面(支持excel03和07)包括style

    Apache POI 是一个开源项目,专门用于处理 Microsoft Office 格式,如 Excel、Word 和 PowerPoint。在本场景中,我们关注的是如何使用 POI 库将 Excel 文件转换为 HTML 页面,同时保留原始 Excel 的样式信息,这对于...

    poi 生成 excel 文件 和 数据连接池

    Apache POI 是一个开源项目,专门用于处理 Microsoft Office 格式的文件,如 Word、Excel 和 PowerPoint。在本主题中,我们将重点关注使用 POI 库生成 Excel 文件以及与数据连接池的整合。 首先,让我们深入了解...

    使用POI,实现excel文件导出,图片url导出文件,图片和excel文件导出压缩包

    在IT行业中,Apache POI是一个广泛使用的库,主要用于读取和写入Microsoft Office格式的文件,尤其是Excel。本文将深入探讨如何使用POI库来实现Excel文件的导出,以及如何将图片URL转换为图片文件并与其他文件一起...

    poi导出cvs文件

    虽然这个例子使用了Excel的`Workbook`和`Sheet`对象,但因为CSV文件没有样式和公式,所以最终导出的文件实际上就是一个纯文本的CSV文件,可以被任何支持CSV的程序打开。 在标签中提到的“源码”可能是指查看或理解...

Global site tag (gtag.js) - Google Analytics