`
747017186
  • 浏览: 331655 次
社区版块
存档分类
最新评论

Apache poi 导出excel实例

    博客分类:
  • java
 
阅读更多

以前用过导出excel使用的是jxl.jar,但是目前最高版本只支持excel2003,并不支持excel2007。所以poi支持excel2007,当然也支持excel2003以下各种版本。好了话不多说了,看例子:

excel2003我就不多说了,其实jxl就能很好的进行支持,我在这里说一下excel2007.

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public static void main(String[] args) throws Exception {
    //输出流
    OutputStream os = new FileOutputStream("D:/1.xlsx"); //要保存的excel文件
    //工作区
    XSSFWorkbook wb = new XSSFWorkbook();
    //标题样式
    XSSFCellStyle btStyle = wb.createCellStyle();//新建样式对象  
    XSSFFont btFont = wb.createFont();//创建字体对象  
    btFont.setFontName("宋体"); //字体
    btFont.setBold(true);//是否加粗
    btFont.setFontHeightInPoints((short) 15);//字体大小
    btStyle.setFont(btFont);  
    btStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);//水平居中
    btStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);//垂直居中
    
    //卷次样式
    XSSFCellStyle juanciStyle = wb.createCellStyle();//新建样式对象  
    XSSFFont juanciFont = wb.createFont();//创建字体对象  
    juanciFont.setFontName("宋体"); //字体
    juanciFont.setBold(true);//是否加粗
    juanciFont.setFontHeightInPoints((short) 13);//字体大小
    juanciFont.setColor(new XSSFColor(ColourUtil.getHexToRGB("#7030A0")));//字体颜色
    juanciStyle.setFont(juanciFont);  
    
    //卷样式
    XSSFCellStyle juanStyle = wb.createCellStyle();//新建样式对象  
    XSSFFont juanFont = wb.createFont();//创建字体对象  
    juanFont.setFontName("宋体"); //字体
    juanFont.setBold(true);//是否加粗
    juanFont.setFontHeightInPoints((short) 12);//字体大小
    juanFont.setColor(new XSSFColor(ColourUtil.getHexToRGB("#008000")));//字体颜色
    juanStyle.setFont(juanFont);  
    
    //篇样式
    XSSFCellStyle pianStyle = wb.createCellStyle();//新建样式对象  
    XSSFFont pianFont = wb.createFont();//创建字体对象  
    pianFont.setFontName("宋体"); //字体
    pianFont.setBold(true);//是否加粗
    pianFont.setFontHeightInPoints((short) 11);//字体大小
    pianFont.setColor(new XSSFColor(ColourUtil.getHexToRGB("#92D050")));//字体颜色
    pianStyle.setFont(pianFont);  
    
    //章样式
    XSSFCellStyle zhangStyle = wb.createCellStyle();//新建样式对象  
    XSSFFont zhangFont = wb.createFont();//创建字体对象  
    zhangFont.setFontName("宋体"); //字体
    zhangFont.setBold(true);//是否加粗
    zhangFont.setFontHeightInPoints((short) 10);//字体大小
    zhangFont.setColor(new XSSFColor(ColourUtil.getHexToRGB("#0000FF")));//字体颜色
    zhangStyle.setFont(zhangFont);  
    
    //节样式
    XSSFCellStyle jieStyle = wb.createCellStyle();//新建样式对象  
    XSSFFont jieFont = wb.createFont();//创建字体对象  
    jieFont.setFontName("宋体"); //字体
    jieFont.setBold(true);//是否加粗
    jieFont.setFontHeightInPoints((short) 9);//字体大小
    jieFont.setColor(new XSSFColor(ColourUtil.getHexToRGB("#66FFFF")));//字体颜色
    jieStyle.setFont(jieFont);  
    
    //小节样式
    XSSFCellStyle xiaojieStyle = wb.createCellStyle();//新建样式对象  
    XSSFFont xiaojieFont = wb.createFont();//创建字体对象  
    xiaojieFont.setFontName("宋体"); //字体
    xiaojieFont.setBold(true);//是否加粗
    xiaojieFont.setFontHeightInPoints((short) 8);//字体大小
    xiaojieFont.setColor(new XSSFColor(ColourUtil.getHexToRGB("#C2AFEB")));//字体颜色
    xiaojieStyle.setFont(xiaojieFont);  
    
    //校注样式
    XSSFCellStyle jiaoazhuStyle = wb.createCellStyle();//新建样式对象  
    XSSFFont jiaozhuFont = wb.createFont();//创建字体对象  
    jiaozhuFont.setFontName("宋体"); //字体
    jiaozhuFont.setBold(true);//是否加粗
    jiaozhuFont.setFontHeightInPoints((short) 8);//字体大小
    jiaozhuFont.setColor(new XSSFColor(ColourUtil.getHexToRGB("#0000FF")));//字体颜色
    jiaoazhuStyle.setFont(jiaozhuFont);  
    
	String[] title = {"史籍语料","ID","唯一标示符号","标题级别","新增条目名","显示标题","主题词","分类"};
	//创建第一个sheet
	XSSFSheet sheet= wb.createSheet("内容结构");//创建一个工作簿,并起个名字
	//生成第一行
	XSSFRow row = sheet.createRow(0);
	for(int i=0;i<title.length;i++){
		Cell cell=row.createCell(i);//取得一行当中的列
		cell.setCellValue(title[i]);//设置内容
		cell.setCellStyle(btStyle);//设置样式
		
       	sheet.setColumnWidth(i, 30*256); // 设置列的宽度
	}
	//写文件
	wb.write(os);
	//关闭输出流
	os.close();
}

 

读取excel2007,用poi实现也和简单,看例子:

import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public static void main(String[] args) throws Exception {
	//office2007工作区
	XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("D:/1.xlsx"));
	//获得该工作区的第一个sheet
	XSSFSheet sheet = wb.getSheetAt(0);
	//总共有多少行,从0开始
	int totalRows = sheet.getLastRowNum();
	for (int i = 0; i <= totalRows; i++) {
		//取得该行
		XSSFRow row = sheet.getRow(i);
		System.out.println(row.getCell(0).toString());//读取该行的第几列,当前是读取该行的地0列。也就是第几个单元格,从0开始
	}
}

 值得注意的是,XSSFWorkbook支持excel2007,而HSSFWorkbook支持excel2003。这两个类分别支持的。

 

分享到:
评论

相关推荐

    Apache Poi Excel导出

    这篇博客“Apache Poi Excel导出”可能详细介绍了如何使用Apache POI库来生成Excel文件,特别适用于数据导出或报表生成等场景。 Apache POI API 包含多个关键组件,如HSSF(Horizontally Stored Format)用于处理旧...

    POI导出Excel文件

    以下是一个简化的示例,演示了如何使用POI导出Excel: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java.io....

    POI导出Excel表格

    在这个“POI导出Excel表格”的实例中,我们将深入探讨如何利用Apache POI进行Excel文件的导入与导出操作。 首先,我们需要在项目中集成Apache POI库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...

    poi导出Excel实例

    &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;version&gt;3.9 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-ooxml &lt;version&gt;3.9 1.//创建excel工作簿 Workbook wb = new HSSFWorkbook(); 解释:该方法相当于...

    JAVA POI导出EXCEL代码

    本篇文章将详细介绍如何使用JAVA POI导出Excel。 一、准备工作 在开始编写代码前,确保已经添加了Apache POI库到项目的依赖管理中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    poi导出excel表格

    本教程将详细讲解如何使用Apache POI在Web环境中导出Excel表格,避免生成不必要的临时文件,从而优化系统资源管理。 一、Apache POI简介 Apache POI 是一个开源项目,它提供了Java API来处理Microsoft的Office格式...

    Apache POI 导出Excel工具类的实现,超简单实用

    本文将深入讲解如何使用Apache POI创建一个简单的Excel导出工具类。 1. **安装与引入Apache POI** 在开始之前,你需要在项目中添加Apache POI的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ...

    java poi导出Excel上传实例 可直接使用

    通过上述步骤,你就创建了一个基本的Java程序,能够使用Apache POI导出Excel文件。在项目中,你可以根据实际需求对这个示例进行扩展,比如从数据库读取数据、动态生成列名或自定义样式。这个"poi2"文件可能是包含此...

    poi导出excel文档

    在本文中,我们将深入探讨如何使用POI库来导出Excel文档,以及涉及到的关键知识点。 一、POI简介 Apache POI 是一个开源项目,由Apache软件基金会维护。它的主要目标是提供一套API,使Java程序员能够方便地处理...

    Java POI 导出Excel 2007 实例源代码

    Java POI 是一个开源库...以上就是使用Java POI导出Excel 2007的实例源代码所涉及的主要知识点。通过这些步骤,开发者可以轻松地在Java程序中生成符合需求的Excel文件。在实际项目中,可以根据具体需求进行扩展和优化。

    poi导出excel2007

    ### 使用Apache POI导出Excel 2007并避免内存溢出问题 #### 背景介绍 在处理大量数据时,使用Java导出Excel文件可能会遇到内存溢出的问题,尤其是在导出Excel 2007(.xlsx格式)时更为常见。这是因为传统的`...

    POI导出操作Excel

    总结起来,这个例子展示了如何利用Apache POI将数据库查询结果导出为Excel文件供用户下载。这在数据分析、报表生成或数据交换场景中非常常见,因为Excel提供了灵活的格式化和分析功能。通过熟练掌握Apache POI,...

    easy-poi导入导出excel实例

    《使用Easy-Poi进行Excel导入导出的实践详解》 在现代企业中,数据处理是一项不可或缺的任务,而Excel作为常见的数据存储和分析工具,其导入导出功能在各种业务场景中发挥着重要作用。Easy-Poi是一款优秀的Java库,...

    poi多sheet页导出工具类和实例 包含多个excel导出

    总之,这个 poi 多 sheet 导出工具类和实例是处理大量数据导出的有效方法,结合合理的数据分组、公共数据获取类以及优化策略,可以高效地生成多个 sheet 或多个 Excel 文件,满足大规模数据的导出需求。

    Poi导出Excel工具类

    总结起来,`Poi导出Excel工具类`是一个方便的Java库,简化了通过Apache POI处理Excel文件的过程,特别是对于需要导出大量数据和多sheet页的场景。开发者可以轻松地集成到自己的项目中,通过简单的API调用来快速生成...

    通用excel导入/导出 (poi)

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在这个"通用excel导入/导出 (poi)"的示例中,我们主要关注的是Excel文件的处理,特别是如何利用POI库进行数据...

    poi导出Excel 照葫芦画瓢

    这个“poi导出Excel 照葫芦画瓢”的项目很显然是教你如何使用 Apache POI 库来创建和导出 Excel 文件。下面将详细介绍 Apache POI 的基本用法以及在描述中提到的几个关键文件的作用。 首先,让我们来看看 Apache ...

Global site tag (gtag.js) - Google Analytics