`
lhxctc
  • 浏览: 53295 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类
最新评论

Apache POI SpreadSheet的一些简单应用(一)

    博客分类:
  • Java
阅读更多
我用的版本是 poi-3.5,您可以去官方上下载。
希望对大家能有些帮组。



import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Date;
import java.util.Iterator;

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.HSSFDateUtil;
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;

public class XZou {
	
	/**
	 * 生成一个简单的excel,
	 * @throws Exception
	 */
	public static void writeSimpleExcel() throws Exception {

		HSSFWorkbook wb = new HSSFWorkbook();
		FileOutputStream out = new FileOutputStream("c:/aa.xls");
		wb.write(out);
		out.close();
	}
	/**
	 * 生成一个简单的excel,并且有两个工作表 
	 * @throws Exception
	 */
	public static void writeSheetExcel() throws Exception {

		HSSFWorkbook wb = new HSSFWorkbook();
		wb.createSheet("a sheet");
		wb.createSheet("b sheet");
		FileOutputStream out = new FileOutputStream("c:/bb.xls");

		wb.write(out);
		out.close();
	}
	
	/**
	 * 生成Excel文件和一个工作表,其中工作表中去设置一些内容
	 * @throws Exception
	 */
	public static void writeSheetCellExcel() throws Exception {

		HSSFWorkbook wb = new HSSFWorkbook();

		HSSFSheet sheet = wb.createSheet("a sheet");

		HSSFRow row = sheet.createRow(0);

		HSSFCell cell = row.createCell((short) 0);
		cell.setCellValue(new HSSFRichTextString("ID"));
		row.createCell((short) 1).setCellValue(new HSSFRichTextString("姓名"));
		row.createCell((short) 2).setCellValue(new HSSFRichTextString("年龄"));
		row.createCell((short) 3).setCellValue(new HSSFRichTextString("薪水"));
		row.createCell((short) 4).setCellValue(new HSSFRichTextString("生日"));
		row.createCell((short) 5).setCellValue(new HSSFRichTextString("是否"));
		row.createCell((short) 6).setCellValue(new HSSFRichTextString("工作时间"));

		row = sheet.createRow(1);
		row.createCell((short) 0).setCellValue(1);
		row.createCell((short) 1).setCellValue(new HSSFRichTextString("XZou"));
		row.createCell((short) 2).setCellValue(22);
		row.createCell((short) 3).setCellValue(100.25);
		row.createCell((short) 4).setCellValue(new java.util.Date());
		row.createCell((short) 5).setCellValue(true);
		// row.createCell((short)6).setCellValue(new HSSFRichTextString("生日"));
		HSSFCellStyle cellStyle = wb.createCellStyle();
		cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));
		HSSFCell cellr = row.createCell((short) 6);
		cellr.setCellValue(new Date());
		cellr.setCellStyle(cellStyle);

		row.createCell((short) 7).setCellType(HSSFCell.CELL_TYPE_ERROR);

		HSSFCell cella = row.createCell((short) 8);
		cellStyle = wb.createCellStyle();//利用workbook生成一个样式
		cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//样式基中
		cella.setCellValue(new HSSFRichTextString("中"));//cella单元格内容设置

		cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
		cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
		cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
		cellStyle.setLeftBorderColor(HSSFColor.GREEN.index);
		cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
		cellStyle.setRightBorderColor(HSSFColor.BLUE.index);
		cellStyle.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASHED);
		cellStyle.setTopBorderColor(HSSFColor.BLACK.index);
		cella.setCellStyle(cellStyle);

		cella = row.createCell((short) 9);
		HSSFCellStyle hlink_style = wb.createCellStyle();
		HSSFFont hlink_font = wb.createFont();
		hlink_font.setUnderline(HSSFFont.U_SINGLE);
		hlink_font.setColor(HSSFColor.BLUE.index);
		hlink_style.setFont(hlink_font);

		cella.setCellValue(new HSSFRichTextString("URL LINK"));

		FileOutputStream out = new FileOutputStream("c:/bb.xls");

		wb.write(out);
		out.close();
	}
	
	/**
	 * 读取
	 * @throws Exception
	 */
	public static void getSheet() throws Exception {
		InputStream in = new FileInputStream("c:/bb.xls");
		HSSFWorkbook wb = new HSSFWorkbook(in);
		HSSFSheet sheet = wb.getSheetAt(0);
		for (Iterator rit = sheet.rowIterator(); rit.hasNext();) {
			HSSFRow row = (HSSFRow) rit.next();
			for (Iterator cit = row.cellIterator(); cit.hasNext();) {
				HSSFCell cell = (HSSFCell) cit.next();
				if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
					System.out.print(cell.getRichStringCellValue() + ",");
				}
				if (cell.getCellType() == HSSFCell.CELL_TYPE_ERROR) {
					System.out.print(cell.getErrorCellValue() + ",");
				}
				if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
					if (HSSFDateUtil.isCellDateFormatted(cell)) {
						System.out.print(HSSFDateUtil.getJavaDate(
								cell.getNumericCellValue()).toLocaleString()
								+ ",");
					}
					System.out.print(cell.getNumericCellValue() + ",");
				}
				if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
					System.out.print(cell.getBooleanCellValue() + ",");
				}
			}
			System.out.println();
		}
		/*
		 * for (HSSFRow row : sheet.rowIterator()) { for (HSSFCell cell :
		 * row.cellIterator()) { // Do something here } }
		 */
	}
	/**
	 * 生成Excel,并且格式化单元格的数字和时间
	 * @throws Exception
	 */
	public static void writeFormat() throws Exception {
		HSSFWorkbook wb = new HSSFWorkbook();
		HSSFSheet sheet = wb.createSheet("format sheet");
		HSSFCellStyle style;
		HSSFDataFormat format = wb.createDataFormat();
		HSSFRow row;
		HSSFCell cell;
		short rowNum = 0;
		short colNum = 0;

		row = sheet.createRow(rowNum++);
		cell = row.createCell(colNum);
		cell.setCellValue(11111.25);
		style = wb.createCellStyle();
		style.setDataFormat(format.getFormat("0.0"));
		cell.setCellStyle(style);

		row = sheet.createRow(rowNum++);
		cell = row.createCell(colNum);
		cell.setCellValue(11111.25);
		style = wb.createCellStyle();
		style.setDataFormat(format.getFormat("#,##0.0000"));
		cell.setCellStyle(style);

		FileOutputStream fileOut = new FileOutputStream("c:/cc.xls");
		wb.write(fileOut);
		fileOut.close();

	}

	public static void main(String[] args)  throws Exception{
		
		// writeSimpleExcel();
		//writeSheetExcel();
		writeSheetCellExcel();
		//getSheet();
		//writeFormat();
		
	}

}




分享到:
评论

相关推荐

    Apache POI for Android

    Apache POI 是一个著名的开源项目,主要为处理微软的Office文档格式提供了一个强大的Java API。在Android开发中,Apache POI 提供了处理Excel文件的能力,使得开发者可以在Android设备上进行Excel的读写操作,无需...

    Apache POI资源包

    3. **兼容性与稳定性**:Apache POI广泛应用于各种项目,从简单的数据导入导出到复杂的数据分析,其稳定性和兼容性得到了充分验证。随着Microsoft Office文件格式的更新,Apache POI也会相应地进行升级,以支持最新...

    apache-poi-3.17(最新稳定版本)

    Apache POI 是一个开源项目,由Apache软件基金会维护,它主要致力于处理Microsoft Office格式的文件,如Word(.doc和.docx)、Excel(.xls和.xlsx)、PowerPoint(.ppt和.pptx)等。Apache POI 提供了Java API,使得...

    Apache POI 3.16 JAR 包

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。POI库提供了一套API,使得开发者能够在Java环境中读取、写入和修改这些文件。在本例中,我们关注的是"Apache POI ...

    poi-3.9 apache-poi-3.9 最新稳定版本

    Apache POI 是一个开源项目,由Apache软件基金会维护,它主要致力于处理Microsoft Office格式的文件,如Excel(.xlsx, .xls),Word(.doc, .docx)和PowerPoint(.ppt, .pptx)。POI库为Java开发者提供了一套API,...

    apache poi 导出excel、word

    Apache POI 是一个广泛使用的库,它支持HSSF(Horizontally Stored Spreadsheet Format)和XSSF(XML Spreadsheet Format),分别用于处理老版本的Excel(.xls)和新版本的Excel(.xlsx)文件。此外,它还提供了一...

    Apache POI Excel操作

    Apache POI 是一个开源项目,专门用于读写Microsoft Office格式的文件,如Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。在Java开发环境中,Apache POI 提供了丰富的API,使得开发者能够方便...

    org.apache.poi依赖包

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

    Apache POI教程以及jar包

    Apache POI是一个开源项目,专为处理Microsoft Office格式的文件而设计,主要支持Microsoft的Excel、Word和PowerPoint文档。这个教程将引导你了解如何使用Apache POI库在Java环境中创建、修改和读取这些文件。 一、...

    Apache Poi Excel导出

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel。在Java开发中,Apache POI 提供了一种高效且灵活的方式来创建、修改和读取Excel工作簿。这篇博客“Apache Poi Excel导出”可能详细...

    apache poi

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。这个项目允许开发者在Java环境中创建、修改和读取这些文件,为跨平台的应用程序提供了强大的支持。Apache POI ...

    Apache POI教程

    Apache POI 是一个Java库,专门用于操作Microsoft Office文件,特别是Excel、Word和PowerPoint文档。这个库由Apache软件基金会开发,它提供了丰富的API,使Java程序员能够创建、修改和展示MS Office文件。Apache POI...

    apache-poi-4.1.2的一些必要库

    Apache POI 是一个开源项目,专门用于处理微软的Office文档...以上就是关于Apache POI 4.1.2的一些关键知识点,通过这个库,开发者可以在Java应用中方便地处理Office文档,实现自动化办公、数据导入导出等多种功能。

    Apache Poi相关Jar包

    Apache POI是一个开源项目,由Apache软件基金会维护,专门用于处理Microsoft Office格式的文件,如Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。它提供了Java API,使得开发人员能够在Java...

    java生成Excel库Apache POI3.15

    首先,Apache POI 提供了HSSF(Horizontally Stored SpreadSheet Format)和XSSF(XML Spreadsheet Format)两个API,分别用于处理老版本的BIFF8格式(.xls)和新版本的OOXML格式(.xlsx)的Excel文件。在3.15版本中...

    apache 的 poi-3.8.jar

    Apache POI 提供了多种API,包括HSSF(Horrible Spreadsheet Format)用于处理老版本的BIFF格式(Excel 97-2003),以及XSSF(eXtensible Spreadsheet Format)用于处理基于XML的新版本XLSX格式。通过这些API,你...

    apache poi 最新包

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word(.doc、.docx)、Excel(.xls、.xlsx)和PowerPoint(.ppt、.pptx)。这个“apache poi-3.11-beta 最新包”指的是Apache POI库的3.11 ...

    APACHE POI教程

    Apache POI是一个开源项目,由Apache软件基金会维护,专门用于处理Microsoft Office格式的文件,如Word(.doc)、Excel(.xlsx/.xls)和PowerPoint(.pptx/.ppt)。这个教程将帮助你深入理解如何使用Apache POI库在...

    org.apache.poi.hssf.converter,office转html所需包

    `org.apache.poi.hssf.converter` 是Apache POI的一个子模块,它专注于处理老版本的Excel文件(.xls),也就是基于HSSF(Horizontally Stored Spreadsheet Format)的文件。 在这个标题为“org.apache.poi.hssf....

Global site tag (gtag.js) - Google Analytics