`
hellojim
  • 浏览: 53309 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用 poi 包生成(向.xls表格中写入)excel 表格文件

    博客分类:
  • JAVA
阅读更多
package com.jim.tools;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFHeader;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * 此类采用 poi包 实现了向 .xls 文件写入的功能,
 * 目前为止 FastExcel 还没有提供向 .xls 文件写入的功能
 * @author  hellojim
 * @company cxtech
 */
public class POIWriteToExcel {
	
	private String URL;       //要写入的 .xls 文件的目录
	private String index;    //要写入的 .xls 文件的那个 Sheet 的名字, 默认为第0个(Sheet1)
	private int beginRow = 0; //要写入的 Sheet 的开始行, 默认为第0行
	private int beginCol = 0; //要写入的 Sheet 的开始列, 默认为第0列
	private String[][] content; //要写入到 Sheet 中的内容
	
	/**
	 *  URL 要写入的那个 .xls 文件的地址
	 *  content 要写入到 Sheet 中的内容
	 */
	public POIWriteToExcel(String URL,String[][] content) {
		//这里简单的做了个判断
		if(URL == null || URL.trim().equals("")) { 
			System.out.println("文件不能为空!");
		}else if(URL.trim().indexOf(".xls") == -1 && URL.trim().indexOf(".XLS") == -1) {
			System.out.println("文件格式不正确!");
		}else {
			this.URL = URL;
			this.content = content;
		}
	}
	
	/**
	 *  URL 要写入的那个 .xls 文件的地址
	 *  content 要写入到 Sheet 中的内容
	 *  index 要写入的那个 Sheet , 默认为第一个(Sheet1)
	 */
	public POIWriteToExcel(String URL,String[][] content, String index) {
		this(URL,content);
		this.index = index;
	}
	
	/**
	 *  URL 要写入的那个 .xls 文件的地址
	 *  content 要写入到 Sheet 中的内容
	 *  index 要写入的那个 Sheet , 默认为第一个(Sheet1)
	 *  beginRow 要写入的 Sheet 的开始行
	 *  beginCol 要写入的 Sheet 的开始列
	 */
	public POIWriteToExcel(String URL,String[][] content,String index,int beginRow,int beginCol) {
		this(URL,content,index);
		this.beginRow = beginRow;
		this.beginCol = beginCol;
	}
	
	public int getBeginCol() {
		return beginCol;
	}

	public void setBeginCol(int beginCol) {
		this.beginCol = beginCol;
	}

	public int getBeginRow() {
		return beginRow;
	}

	public void setBeginRow(int beginRow) {
		this.beginRow = beginRow;
	}

	public String getIndex() {
		return index;
	}

	public void setIndex(String index) {
		this.index = index;
	}

	public String getURL() {
		return URL;
	}

	public void setURL(String url) {
		URL = url;
	}
	
	public String[][] getContent() {
		return content;
	}

	public void setContent(String[][] content) {
		this.content = content;
	}

	public void write() throws FileNotFoundException, IOException {
	
     //创建新的 Excel 工作簿
     HSSFWorkbook workbook = new HSSFWorkbook(); 
     //在 Excel 工作簿中建创一个工作表,其名为缺省值 sheet1
     HSSFSheet sheet = workbook.createSheet(String.valueOf(index));
     //创建字体
     HSSFFont font = workbook.createFont();
     //把字体颜色设置为红色
     font.setColor(HSSFFont.COLOR_NORMAL);
     //把字体设置为粗体
     font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
     //创建格式
     HSSFCellStyle cellStyle= workbook.createCellStyle();
     //把创建的字体付加于格式
     cellStyle.setFont(font);
     
     int beginRow = this.beginRow;
     int beginCol = this.beginCol;
     
     for(int i=0; i<content.length; i++) {
       //在工作表中创建一行
       HSSFRow row = sheet.createRow(beginRow++);
       beginCol = this.beginCol;
       for(int j=0; j<content[i].length; j++) {
         //在一行中创建一个表格
         HSSFCell cell = row.createCell((short)beginCol++);

         if( i == 0) {
           //把上面的格式付加于一个单元格
           cell.setCellStyle(cellStyle);
         }

         //设置此单元格中存入的是字符串
         cell.setCellType(HSSFCell.CELL_TYPE_STRING);
         //设置编码 这个是用来处理中文问题的
         cell.setEncoding(HSSFCell.ENCODING_UTF_16);
         //向此单元格中放入值
         cell.setCellValue(content[i][j]);
       }
     }
     
     FileOutputStream fileOutputStream = null;
     fileOutputStream = new FileOutputStream(this.URL);
     workbook.write(fileOutputStream);
     fileOutputStream.flush();
     fileOutputStream.close();
     
  }
  
  
  public static void main(String [] args) {
	  
	String[][] content = new String[2][3];
	
	content[0][0] = "1";
	content[0][1] = null;
	content[0][2] = "3";
	
	content[1][0] = "4";
	content[1][1] = "5";
	content[1][2] = "6";
	
    POIWriteToExcel poiwte = new POIWriteToExcel("d:\\abc.xls",content,"sheet5",5,5);
//    poiwte.setIndex("sheet3");
//    poiwte.setBeginRow(2);
//    poiwte.setBeginCol(3);
    
    try {
		poiwte.write();
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
  }
}

好了,现在在 d:\ 目录下会有一个 abc.xls 文件

 

3
0
分享到:
评论

相关推荐

    org.apache.poi依赖包

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word(.doc/.docx)、Excel(.xls/.xlsx)、PowerPoint(.ppt/.pptx)等。这个"org.apache.poi"依赖包是Java开发者在处理这些文件时不可或缺...

    poi生成excel表格

    Apache POI 是一个开源项目...以上是Apache POI生成Excel表格的基本知识点和操作步骤。通过这些示例,你可以理解如何在Java应用中利用POI进行Excel文件的创建、读取和修改,以及如何结合数据库操作实现数据的导入导出。

    poi生成表格.zip

    本教程将详细介绍如何使用Apache POI 3.5版本来生成Excel表格。 Apache POI是Apache软件基金会的一个开源项目,它的主要功能是处理Microsoft Office格式的文件,包括Excel(XLS和XLSX)、Word(DOC和DOCX)以及...

    导出 Excel 以及转化为 PDF 导出

    在提供的压缩包文件中,`export.rar` 可能包含了使用 `easypoi` 实现 Excel 导出的示例代码,而 `spire.rar` 则可能包含使用 `Spire.XLS.Free` 进行 Excel 到 PDF 转换的代码。通过解压并研究这两个示例,你可以更...

    org.apache.poi 3.17最新官方版文件操作jar包

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word(.doc、.docx)、Excel(.xls、.xlsx)、PowerPoint(.ppt、.pptx)等。这个“org.apache.poi 3.17最新官方版文件操作jar包”包含了...

    java 创建EXCEL文件,并向EXCEL中写入数据

    本示例将介绍如何使用Java创建Excel文件并写入数据,主要涉及的库是`jxl`,这是一个用于读写Excel文件的开源Java库。 首先,我们需要引入`jxl`库。`jxl.jar`包含了一系列的类和接口,用于处理Excel文件的各种操作。...

    POI导出.pdf,.doc,.xls,.jpg四种格式通用组件

    在描述中提到的"POI导出.pdf,.doc,.xls,.jpg四种格式通用组件",意味着该组件不仅限于处理Microsoft Office文档,还支持生成PDF和图像文件(如.jpg),实现了多种文件格式间的转换和导出。 1. **Apache POI 概述**...

    poi导出excel表格

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

    POI导出Excel表格

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

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

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

    自动生成Excel文件(.xls) 并支持浏览器下载,之前传的那个有问题,抱歉

    本示例涉及的是如何使用编程技术自动生成Excel文件(.xls格式),并允许用户通过浏览器直接下载。以下是对这个主题的详细阐述: 1. **Excel文件格式**:.xls是Microsoft Excel的传统文件格式,主要用于存储表格数据...

    使用POI将数据写入到EXCEL

    以上就是使用Apache POI将数据写入Excel的基本步骤。在实际应用中,你可能还需要处理更多细节,比如设置单元格样式、合并单元格、添加公式等。此外,如果数据量较大,为了性能考虑,可以使用SXSSFWorkbook,它提供了...

    Apache POI导入数据到Excel电子表格

    在Java开发中,Apache POI 提供了一套丰富的API,使得开发者能够方便地读取、写入和修改Excel电子表格。本篇文章将详细介绍如何使用Apache POI 导入数据到Excel。 首先,你需要在项目中引入Apache POI相关的库。...

    使用POI在Excel中动态生成图表工具类(支持柱状、组合、环状图、折线图、等常用图)

    在Java开发中,Apache POI库是一个非常实用的工具,用于读取和写入Microsoft Office格式的文件,尤其是Excel(.xlsx和.xls)文件。本教程将深入讲解如何使用POI来动态地在Excel中创建各种图表,包括柱状图、组合图、...

    Excel表格操作依赖包poi-3.9.jar和使用Demo

    Apache POI是一个流行的开源库,它允许开发者使用Java来读取、创建和修改Microsoft Office格式的文件,包括Excel(.xlsx 和 .xls)文件。在本案例中,我们关注的是"poi-3.9.jar",这是一个Apache POI项目的特定版本...

    java POI生成word.zip

    在本案例中,"java POI生成word.zip"是一个压缩包,包含使用Java POI库生成Word文档的示例代码。以下是基于这个主题的相关知识点: 1. **Java POI库介绍** - Java POI 是一套API,用于处理Microsoft Office格式的...

    Apache POI 模板导出excel.rar

    在"Apache POI 模板导出excel.rar"这个压缩包中,我们聚焦于使用Apache POI 3.16版本来生成基于Excel模板的数据导出功能。这个过程涉及到多个关键知识点,下面将详细阐述。 1. **Apache POI库**:Apache POI是一个...

    poi复制指定行数的Excel表格内容

    描述中提到的"jar包也是齐全的",意味着提供者可能已经包含了所有必要的Apache POI库,可以直接在项目中使用,无需手动添加依赖。 在压缩包文件名"**PoiCopy**"中,我们可以推测这可能包含了一个示例程序或库,演示...

    POI使用Excel模板文件循环输出行并导出Excel

    在这个特定的例子中,我们将讨论如何使用POI库基于一个Excel模板文件循环输出数据行,并将结果导出为新的Excel文件。 首先,我们需要理解POI库的基本概念。POI提供了HSSF(Horizontally SpreadSheet Format)和XSSF...

    poi操作excel表格导入和导出

    在“poi操作excel表格导入和导出”这个主题中,我们将深入探讨如何利用Apache POI进行Excel数据的处理,包括导入和导出。 一、Apache POI简介 Apache POI是一个开源项目,它提供了API来处理Microsoft Office格式的...

Global site tag (gtag.js) - Google Analytics