`
lubacui
  • 浏览: 27042 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

POI设置Excel的格式 字体样式 美化

阅读更多
POI设置Excel的格式 字体样式 美化


import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
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;

/**
*
* @author hadeslee
*/
public class Test2{
   
    /** Creates a new instance of Test2 */
    public Test2() {
     }
    public static void main(String[] args)throws Exception {
        //声明一个工作薄
         HSSFWorkbook wb=new HSSFWorkbook();
        //生成一个表格
         HSSFSheet sheet=wb.createSheet("表格1");
        //生成一个列
         HSSFRow row=sheet.createRow(0);
        //生成一个样式
         HSSFCellStyle style=wb.createCellStyle();
        //设置这些样式
         style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
         style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
         style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
         style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
         style.setBorderRight(HSSFCellStyle.BORDER_THIN);
         style.setBorderTop(HSSFCellStyle.BORDER_THIN);
         style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //生成一个字体
         HSSFFont font=wb.createFont();
         font.setColor(HSSFColor.VIOLET.index);
         font.setFontHeightInPoints((short)16);
         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        //把字体应用到当前的样式
         style.setFont(font);
        //填充单元格
        for(short i=0;i<5;i++){
            //声明一个单元格
             HSSFCell cell=row.createCell(i);
            //设置单元格的字符值
             cell.setCellValue(new HSSFRichTextString("第"+i+"列"));
            //设置单元格的样式
             cell.setCellStyle(style);
         }
         FileOutputStream fout=new FileOutputStream("我的第一个EXCEL.xls");
        //输出到文件
         wb.write(fout);
         fout.close();
     }
}


public static void main(String[] args) {
        try {
             HSSFWorkbook wb = new HSSFWorkbook();
             HSSFSheet sheet = wb.createSheet();
             HSSFRow row = sheet.createRow(0);
             row.setHeight((short) 25);//目的是想把行高设置成25px
             FileOutputStream fileOut = new FileOutputStream("c:\\a.xls");
             wb.write(fileOut);
             fileOut.close();
         }
        catch (Exception e) {
             e.printStackTrace();
         }
     }

打开a.xls发现结果不是我想要的,第一行的高度都没有,没有报错说明代码有问题,为什么回没有高度呢?是不是单位不一样呢?我把row.setHeight((short) 25);改成了row.setHeight((short) 250);结果发现第一行出来了,但是这是怎么一个换算关系呢?我查看了一下导出的Excel第一行高是16像素,换算一下得出row.setHeight((short) 15.625);表示行高为一个像素,那么想设成几个像素就好做了。比如
row.setHeight((short) (15.625*n));//n为行高的像素数。
其实在API中还有一个HSSFRow 对象还有一个设置行高的函数setHeightInPoints(float height);这个函数中参数就是行高的像素数,比setHeight函数要方便多了。
行高设置完成了,接下来设置列宽

    public static void main(String[] args) {
        try {
             HSSFWorkbook wb = new HSSFWorkbook();
             HSSFSheet sheet = wb.createSheet();
             HSSFRow row = sheet.createRow(0);
             row.setHeight((short) 250);
             sheet.setColumnWidth((short) 0, (short) 250);
             FileOutputStream fileOut = new FileOutputStream("c:\\a.xls");
             wb.write(fileOut);
             fileOut.close();
         }
        catch (Exception e) {
             e.printStackTrace();
         }
     }
接下来说说sheet.setColumnWidth((short) 0, (short) 250);
第一个参数表示要为第几列设置,第二个参数表示列的宽度,看看上面的代码按说第一行第一列的单元格形状应该是个正方形,因为宽和高都是250,但是打开导出后的Excel发现宽度没有高度大,是个长方形,查看该列的宽度仅为7个像素,看来行高和列宽的单位是不一样的,同样换一算sheet.setColumnWidth((short) 0, (short) (35.7));表示高度为一个像素,同样设置列宽的像素为sheet.setColumnWidth((short) 0, (short) (35.7*n));//n为列高的像素数。


public class MergedCells {
     public static void main(String[] args) throws IOException {
         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();

     }
}


public class WorkingWithFonts {
     public static void main(String[] args) throws IOException {
         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();

     }
}



HSSFRow row = sheet2.createRow(2);
         row.setHeightInPoints(240);
         sheet2.setColumnWidth((short) 2, (short) 9000);
分享到:
评论

相关推荐

    POI设置Cell背景色编码与实际颜色对照表

    Apache POI 提供了`CellStyle`接口,通过这个接口我们可以设置单元格的各种样式,包括字体、边框、对齐方式以及填充颜色。在设置填充颜色时,我们需要使用`FillPatternType`和` IndexedColors`。`FillPatternType`...

    Excel.zip java-poi-excel 导入Import导出Goout excel表格

    9. **单元格样式和公式**:Apache POI还支持设置单元格的样式,如字体、颜色、对齐方式等,以及添加公式。这可以用来美化输出的Excel文件,或者进行复杂的计算。 通过以上这些步骤,"ExcelImport.zip"项目展示了...

    POI操作excel2003与2007

    样式设置对于美化Excel表格非常重要。 **5.1 POI样式相关类** POI提供了一系列的样式设置类,例如: - **单元格边框样式**:使用`HSSFCellStyle.setBorderBottom(BorderStyle.DOUBLE)`等方法设置边框。 - **...

    适用poi操作excel

    // 设置字体样式 font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 加粗 style.setFont(font); // 应用到样式 ``` ##### B. 特殊样式 1. **设置页边距**:通过`setMargin()`方法设置页边距。 ```java ...

    java_POI使用设置教程

    通过阅读提供的"poi使用指南.txt"和"POI设置Excel的格式_字体样式_美化.txt"文档,你将能深入了解如何具体操作这些概念,包括具体的代码示例和技巧。"java_POI教程.pdf"则可能提供了更系统的教程,包括更多细节和...

    struts2+poi实现excel表格导出

    - 设置样式:可以为单元格设置字体、颜色、对齐方式等样式,以美化导出的Excel表格。 - 响应下载:完成Excel的构建后,利用HttpServletResponse对象,设置响应头,如Content-Type为application/vnd.ms-excel,...

    java excel poi合并单元格

    在Java编程中,Apache POI库是一个非常流行的用于读写Microsoft Office格式文件的库,包括Excel。本篇文章将深入探讨如何使用Apache POI来合并Excel工作表中的单元格,以实现标题或者表头的美化。 首先,理解Excel...

    Excel类 Excel操作 Excel9

    这个类集成了多种功能,包括创建Excel文件、合并单元格、设置字体样式、绘制边框、执行宏以及管理工作表等。下面将详细讲解这些知识点。 首先,创建Excel文件是此类的核心功能之一。这通常通过编程接口,如Python的...

    JAVA将数据按指定格式导出为EXCEL和从EXCEL

    7. **样式与格式**:Apache POI允许设置单元格的样式,如字体、颜色、对齐方式、边框、背景填充等。这可以用来美化输出的Excel文件。 8. **日期和数字格式**:Excel支持多种日期和数字格式。在Java中,需要正确设置...

    java Excel 依赖包

    7. **Styles**: POI允许你创建和应用样式,如字体、填充、边框和对齐方式,以美化Excel表格。 8. **Formula Evaluation**: 对于含有公式计算的单元格,POI提供了公式求值器来计算结果。 为了在Java项目中使用...

    word内容提取 word转html-POI wps doc docx转html

    Apache POI是一个开源项目,专为处理Microsoft Office格式的文件而设计,包括Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。在Word转HTML的场景中,Apache POI允许我们读取Word文档的内容,...

    我的博文中用到的Excel报表模板

    这种格式的文件通常可以包含多个工作表,每个工作表可以有独立的数据和格式设置。博主可能在文章中使用了这个模板来展示如何创建或应用模板,如何输入数据,如何运用公式和函数,以及如何设计图表和图形。 在Excel...

    Excel导出.rar

    - **样式设置**:为了美化Excel文件,可以设置单元格的样式,如字体、颜色、对齐方式、边框等。CellStyle对象提供了这些设置方法。 4. **文件输出** - **Response设置**:在JavaWeb环境中,导出Excel文件通常通过...

    利用 JAVA 操作 EXCEL 文件

    - **格式化与样式**:JExcelApi允许你设置单元格的字体、颜色、对齐方式等样式,以便美化输出的Excel文件。 3. **源码示例** - 创建新工作簿: ```java Workbook workbook = Workbook.createWorkbook(new File...

    easypoi POI封装工具类 office开发模板导入导出.zip

    虽然这个压缩包的标签是"css3",但在这里,它可能与easypoi的使用场景有关,即在处理Excel或Word文档时,可能会涉及到CSS3来美化电子表格或文档的样式。CSS3允许开发者定义文本样式、颜色、布局、动画等,可以用于...

    excel lib

    6. 样式和格式:包括字体、颜色、对齐方式、边框和填充等,用于美化和突出显示数据。 7. 数据验证:设置规则以限制单元格中输入的数据类型或范围。 8. 图表:将数据可视化,有多种图表类型如柱状图、折线图和饼图等...

    生成Excel并在客户端下载的JSF实现

    在这个过程中,还需要设置字体样式(`HSSFFont`)、单元格样式(`HSSFCellStyle`)等,以便美化Excel文档。 ```java HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(sheetName); HSSFRow...

    java导出Excel(s2sh)

    - **设置字体与单元格格式**:为了美化 Excel 文件,可以自定义字体和单元格格式。 ```java WritableFont font = new WritableFont(WritableFont.ARIAL, 11, WritableFont.BOLD, false, UnderlineStyle.NO_...

    java操作excel代码.pdf

    【知识点详解】 在Java编程中,处理Excel文件是一项常见的任务,尤其在数据导入导出、数据分析和报表生成等...在实际项目中,可以根据需求进一步扩展,例如读取和修改已有Excel文件,或者实现更复杂的公式和格式设置。

Global site tag (gtag.js) - Google Analytics