`
lichengyezi
  • 浏览: 205731 次
  • 性别: Icon_minigender_1
  • 来自: 齐齐哈尔
文章分类
社区版块
存档分类
最新评论

java操作excel (一)

阅读更多
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.hssf.util.Region;
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;


HSSFCellStyle类代表一种单元格样式。可以通过这些类来设置单元格的边框样式、背景颜色、字体、水平和垂直方式的对齐。
如:
          HSSFWorkbook workbook = new HSSFWorkbook();    //建立一个工作薄
          HSSFCellStyle titleStyle=workbook.createCellStyle();     //在工作薄的基础上建立一个样式
          titleStyle.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);    //设置边框样式
          titleStyle.setBorderLeft((short)1);     //左边框
          titleStyle.setBorderRight((short)1);    //右边框
          titleStyle.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);    //顶边框
          titleStyle.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);    //填充的背景颜色
          titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);    //填充图案

假设什么定义了一个样式,想在填充第一个单元格的时候填充红,第二格单元格填充蓝色。
如果:
          HSSFCellStyle cellStyle = workbook.createCellStyle();    //创建一个样式

          cellStyle.setFillForegroundColor(HSSFColor.RED.index);    //设置颜色为红色
          cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

          HSSFCell cell1 = row.createCell((short)1);     //给单元格cell1填充红色
          cell1.setCellStyle(cellStyle);

若:       cellStyle.setFillForegroundColor(HSSFColor.BLUE.index);    //设置颜色为蓝色
        
          HSSFCell cell2 = row.createCell((short)2);    //给单元格cell2填充蓝色
          cell2.setCellStyle(cellStyle);

这个时候会出现的现象是单元格cell1和cell2都变成了蓝色。遇到这种情况,要预先定义两种不同的单元格样式。


当一个EXCEL文件同时需要很多大同小异的单元格样式时,这样一一定义很麻烦。POI HSSF提供了一个HSSFCellUtil类(在org.apache.poi.           hssf.usermodel.contrib包),里面有几个方法可以绕过HSSFCellStyle直接设定单元格的样式,但这几个方法会抛出NestableException异           常,要处理这个异常,需要引用Apache的几个Common包:
commons-beanutils.jar
commons-beanutils-bean-collections.jar
commons-beanutils-core.jar
commons-lang.jar
commons-logging-api.jar

以下是其他各种情况的处理:
1、中文处理:
要在通过POI生成的EXCEL中正常显示中文,需要为单元格设置编码:
          cell.setEncoding(HSSFCell.ENCODING_UTF_16); 
          cell.setCellValue("部门");

2、合并单元格:
HSSFSheet.addMergedRegion(new Region())方法可以合并单元格,Region()中的一个构造函数含有四个参数,分别代表起始行、起始列、结束        行、结束列:
          sheet.addMergedRegion(new Region(initRow, (short)(initCol-2), initRow + lists.size() - 1, (short)(initCol-2)));

3、公式的处理:
HSSFCell.setCellFormula()方法用来在EXCEL单元格中写入公式。
          cell = row.createCell((short)(dataFlag));
          cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
              cell.setCellFormula("SUM(" + getColLetter(initCol) + (listFlag+1) +":" + getColLetter(dataFlag-1) + (listFlag+1) +                   ")");
          cell.setCellStyle(nameStyle);

4、链接的处理:
在POI中往单元格中写链接,是用HYPERLINK函数搞定的。
HYPERLINK函数包含两个参数,第一个参数是指向的URL地址,第二个参数是显示字串。
     cell = row.createCell((short)(dataFlag));
     cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
     cell.setCellFormula("HYPERLINK(\"http://www.xxxxx.com/xxx.jsp?id=1\",\"homepage\")");
     cell.setCellStyle(linkStyle); 
为了使链接效果更好,我们可以给链接所在单元格定义一种样式,使链接显示为有下划线的蓝色字串:
    HSSFCellStyle linkStyle = workbook.createCellStyle();
    linkStyle.setBorderBottom((short)1);
    linkStyle.setBorderLeft((short)1);
    linkStyle.setBorderRight((short)1);
    linkStyle.setBorderTop((short)1);
    linkStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
    linkStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    HSSFFont font = workbook.createFont();
    font.setFontName(HSSFFont.FONT_ARIAL);
    font.setUnderline((byte)1);
    font.setColor(HSSFColor.BLUE.index);
    linkStyle.setFont(font);

 

分享到:
评论

相关推荐

    Java 操作Excel和Word的所有资料

    Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word...

    Java操作Excel表格

    当我们谈论“Java操作Excel表格”时,通常是指使用Java来读取、写入或处理Microsoft Excel文件,这在数据分析、报表生成或者数据交换等场景中非常常见。本主题将围绕Java如何与Excel交互进行深入探讨。 首先,Java...

    jxl Java操作Excel

    java操作Excel java操作Excel java操作Excel

    Java操作Excel详解

    ### Java操作Excel详解 #### 一、Java Excel API简介 Java Excel API是一个强大的开源库,允许开发者使用Java语言轻松地创建、更新以及读取Excel文件。这个库支持多种Excel文件格式,包括较旧版本(如.xls)和较新...

    利用JAVA操作EXCEL文件.pdf

    ### 利用JAVA操作EXCEL文件的关键知识点 #### 一、JAVA EXCEL API 简介 - **项目背景**:随着Web应用的发展,越来越多的应用场景需要通过Web端操作Excel文件,而传统的CSV文件虽然可以被Excel打开,但无法实现对...

    java 操作excel表格经典例子

    ### Java操作Excel表格经典案例分析 #### 一、引言 在日常办公环境中,Microsoft Office套件中的Excel因其强大的数据处理能力而被广泛使用。在Java编程领域,开发者经常需要处理Excel文件,如批量导入导出数据、...

    Java操作excel工具

    Java操作excel工具

    java操作excel读写

    java操作excel读写,可以根据自己的需要灵活修改。导入导出excel

    java操作excel的jar包

    Java操作Excel是软件开发中常见的任务,特别是在数据分析、报表生成或数据导入导出场景下。在Java中,我们可以借助特定的库来实现这些功能,其中一个广泛使用的库就是Apache POI项目。Apache POI是一个开源的Java ...

    最全最实用的Java操作Excel教程

    ### Java操作Excel教程详解 #### 一、POI简介与背景 **Jakarta POI** 是Apache的一个子项目,它的主要目标是处理OLE2对象。POI提供了一组用于操作Microsoft Office文件(如Word和Excel)的Java API。其中,**HSSF*...

    Java操作Excel的开源库

    Java操作Excel的开源库在开发过程中常常被广泛使用,特别是在数据处理、报表生成以及与用户交互的场景下。JExcelAPI是一个这样的库,它允许Java开发者方便地读取、写入以及修改Microsoft Excel文件,无需依赖Excel...

    java生成excel图表

    "Java生成Excel图表" ...Java生成Excel图表是一个复杂的过程,需要选择合适的库和框架,处理大量数据,设计美学的图表布局等。但是,使用Java生成Excel图表可以提高工作效率,提高数据分析和报表生成的质量。

    java操作excel,函数计算

    java是不能提供java调用excel里的函数的,所以我提供这个例子,让大家参考,必须导入jxl.jar包哦!

    java操作excel

    Java操作Excel是常见的数据处理需求,特别是在数据分析、报表生成或者数据导入导出等场景中。在Java中,我们可以借助Apache POI库来实现对Excel文件的读写操作。Apache POI是一个开源项目,提供了API来处理Microsoft...

    java操作excel实例

    在Java编程中,Apache POI库是一个非常流行的用于读写Microsoft Office格式文件的库,包括Excel。...通过熟练掌握这些知识点,开发者可以高效地在Java程序中生成和操作Excel文件,满足各种业务需求。

    java操作excel实现水印图片

    java操作excel实现水印图片

    通过java操作excel表格的工具类库

    Java 操作 Excel 表格是一项常见的任务,尤其在数据处理和报告生成方面。在这个场景中,我们使用了一个名为 JExcelApi(简称 JXL)的 Java 库来实现这个功能。JXL 是一个开源的 Java 库,允许程序员读取、写入和修改...

    java操作excel的实例

    在Java编程环境中,操作Excel是一项常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件格式主要有.xls(老版本)和.xlsx(新版本),两者都可以通过Java进行读写操作。以下将详细介绍如何使用Java来...

    利用java操作Excel文件

    "Java操作Excel文件" Java操作Excel文件是指使用Java语言来读取和写入Excel文件的内容。下面是关于Java操作Excel文件的知识点总结: 一、读取Excel文件内容 在Java中,读取Excel文件内容可以使用jxl.jar这个开源...

Global site tag (gtag.js) - Google Analytics