`
free_zhou
  • 浏览: 52106 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

POI 操作office2007

    博客分类:
  • java
阅读更多
初秋的大连下午也困的要命,不知道是不是因为昨天睡觉太晚了。闲来没事逛了一下apache,看到POI就拿来小试一下。开始没搞明白offiice2003和2007这么大差别,网上也有人乱七八糟说一通,小弟再用office2007就拿他开刀,我看官网demo是2003。比如excel吧是XSSFWorkbook是HSSFWorkbook的差别,api基本一致。
操作office2007部分代码如下:
 public class Excel
{
	//读excel文档
	public void readExcel(String sheetName)
	{
		XSSFSheet sheet = getSheet(sheetName);
		if(sheet != null)
		{
			for(Iterator<Row> i = sheet.rowIterator(); i.hasNext();)
			{
				//Row row = i.next();
				XSSFRow row = (XSSFRow) i.next();
				if(row == null)
					continue;
				//System.out.println(row.getRowNum() + "="+row.getCell(0));
				for(Iterator<Cell> j = row.cellIterator(); j.hasNext();)
				{
					//Cell cell = j.next();
					XSSFCell cell = (XSSFCell) j.next();
					if(cell == null)
						continue;
					System.out.print(getCellValue(cell) + " ");
				}
				System.out.println();
			}
		}
		else
		{
			System.out.println("没有找到工作表");
		}
	}
	
	//加载工作薄
	private XSSFWorkbook getXSSFWorkBook()
	{
		XSSFWorkbook workbook = null;
		try
		{
			String path = System.getProperty("user.dir") + System.getProperty("file.separator")+"doc"+ System.getProperty("file.separator")+"ExcelDoc.xlsx";
			workbook = new XSSFWorkbook(new FileInputStream(path));
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
		return workbook;
	}
	
	//根据名字取工作表Sheet
	private XSSFSheet getSheet(String sheetName)
	{
		return this.getXSSFWorkBook().getSheet(sheetName);
	}
	
	//判断Cell单元格的类型。
	private String getCellValue(Cell cell)
	{
		Object result = null;
		switch(cell.getCellType())
		{
			case Cell.CELL_TYPE_STRING:
				result = cell.getStringCellValue();
				break;
			case Cell.CELL_TYPE_NUMERIC:
				if(DateUtil.isCellInternalDateFormatted(cell))
					result = cell.getDateCellValue();
				else
					result = cell.getNumericCellValue();
				break;
			case Cell.CELL_TYPE_FORMULA:
				result = cell.getCellFormula();
				break;
			case Cell.CELL_TYPE_ERROR:
				result = cell.getErrorCellValue();
				break;
			case Cell.CELL_TYPE_BOOLEAN:
				result = cell.getBooleanCellValue();
				break;
			default:
				result = "NULL";
				break;
		}
		return result.toString();
	}	
	//生成excel文件
	public void createExcelDoc()
	{
		String path = System.getProperty("user.dir") + System.getProperty("file.separator")+"doc"+ System.getProperty("file.separator")+"creatExcelDoc.xlsx";
		try
		{
			FileOutputStream outStream = new FileOutputStream(path);
			XSSFWorkbook workbook = new XSSFWorkbook();
			
			XSSFSheet sheet = workbook.createSheet("first");
			sheet.autoSizeColumn(0);
			XSSFRow row = sheet.createRow(0);
			row.createCell(0).setCellValue("Name");
			row.createCell(1).setCellValue(2.2);
			
			//helper.createDataFormat() 得到一个DataFormat实例
			/*CreationHelper helper = workbook.getCreationHelper();
			CellStyle dateStyle = workbook.createCellStyle();
			dateStyle.setDataFormat(helper.createDataFormat().getFormat("yyyy-MM-dd hh:mm:ss"));
			
			Cell c = row.createCell(2);
			c.setCellValue(new Date());
			c.setCellStyle(dateStyle);*/
		    
			
			//XSSF....方法
			XSSFCell cell = row.createCell(2);
			XSSFCellStyle style = workbook.createCellStyle();
			XSSFCreationHelper h = workbook.getCreationHelper();
			
			style.setDataFormat(h.createDataFormat().getFormat("yyyy-MM-dd"));
			style.setAlignment(XSSFCellStyle.VERTICAL_CENTER);
			
			cell.setCellStyle(style);
			cell.setCellValue(new Date());
			
			//设置第n单元格的宽度,自动
			sheet.autoSizeColumn(2);
			
			workbook.write(outStream);
			System.out.println("create finished!!");
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}


word2007代码
  public void readWord()
	{
		try
		{
			String path = System.getProperty("user.dir") + System.getProperty("file.separator")+"doc"+ System.getProperty("file.separator")+"WordDoc.docx";
			
			XWPFDocument document = new XWPFDocument(new FileInputStream(path));
			
			XWPFWordExtractor extractor = new XWPFWordExtractor(document);
			
			System.out.println(document.getFootnotes().size());
			System.out.println(document.getDocument().getBody());
			System.out.println(extractor.getText());
			System.out.println(extractor.getMetadataTextExtractor().getText().toUpperCase());
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
分享到:
评论

相关推荐

    poi操作excel2007

    接下来,我们将讨论如何使用Apache POI操作Excel 2007(.xlsx)文件的主要步骤: 1. **创建Workbook对象**:这是Excel工作簿的Java表示。你可以使用`XSSFWorkbook`类来创建一个新的Excel工作簿。 ```java import...

    POI操作2007office需要用到的所有jar包

    今天用POI解析了excel,现在整理了一下,附件中包含POI操作2007office需要用到的所有jar包 dom4j-1.6.1.jar geronimo-stax-api_1.0_spec-1.0.jar ooxml-schemas-1.0.jar openxml4j-bin-beta.jar poi-3.0-FINAL.jar ...

    poi 3.7 支持操作office2007

    在标题中提到的“poi 3.7 支持操作office2007”,意味着这个版本的POI引入了对Microsoft Office 2007引入的新文件格式(OOXML)的支持。Office 2007开始使用基于XML的文件格式,例如.xlsx和.xlsm代替传统的二进制...

    java poi读取office03和office07jar包

    2. **XSSF (XML Spreadsheet Format)**:用于处理较新的Microsoft Excel文件(.xlsx),适用于Office 2007及更高版本。 在Java项目中使用Java POI,你需要将相应的jar包导入到你的项目类路径中。这些jar包通常包含...

    POI将Office文件转化为Html页面

    因此,Jacob可以用于在Windows环境下直接操作Office文件,包括转换为HTML。但由于它依赖于Windows的COM接口,所以不适用于其他操作系统。 总结来说,Apache POI提供了一种跨平台的方式来将Office文件转换为HTML,这...

    POI 生成EXCEL2007【含例子】

    在压缩包的文件名“poi2007”中,我们可以推测这可能包含了一些与POI操作Excel 2007文件相关的类或者示例代码。这些代码可能包含了上述所有步骤,帮助开发者更好地理解如何使用Apache POI来处理XLSX格式的Excel文件...

    poi操作word书签,兼容2003和2007

    下载后,运行 可以 Test1中的main方法,注意里面的word模版地址要修改下。...test1.java主要是针对word的书签操作 MSWordTool.java主要是针对word的列表书签的操作,相对来说比较复杂,具体看个人需求。

    POI操作MS Office

    压缩包中的"opreateOffice"可能包含了一些示例代码,用于展示如何使用Apache POI操作Excel和其他MS Office文件。通过学习这些示例,你可以更好地理解POI的工作方式,并将其应用到实际项目中。 总之,Apache POI是一...

    poi 操作 excel 2007 demo 及poi类库

    下面将详细介绍如何使用Apache POI操作Excel 2007以及相关的类库。 首先,"poi-bin-3.9-20121203.zip"是Apache POI的一个版本包,包含了运行时所需的二进制文件。解压后,你可以将其中的jar文件添加到你的Java项目...

    用Java操作Office 2007

    在IT行业中,与“用Java操作Office 2007”相关的知识点主要集中在如何使用Java编程语言来读取、修改和创建Microsoft Office 2007格式的文档,如Word (.docx)、Excel (.xlsx)和PowerPoint (.pptx)文件。这些任务通常...

    poi读写office文件样例程序

    这个"poi读写office文件样例程序"提供了一系列的源代码示例,帮助开发者理解和实现对这些文件的读取和写入操作。下面将详细介绍其中涉及的关键知识点。 1. **Apache POI 框架** Apache POI 是Apache软件基金会的一...

    POI操作EXCEL,支持office2003,2007,2010,2013(详)

    这个“POI操作EXCEL,支持office2003,2007,2010,2013(详)”的主题涵盖了一系列知识点,旨在帮助开发者熟练地使用Apache POI处理不同版本的Excel文件。 首先,我们来看Excel的两种主要文件格式:`.xls`(Excel 97-...

    java操作office poi jacob

    1. **Apache POI**: 这是Apache软件基金会的一个开源项目,专门用于处理Microsoft的Office文件格式,如`.xls`(Excel 97-2003)和`.xlsx`(Excel 2007及以上版本)。POI提供了API,使得开发者可以方便地创建、修改和...

    poi操作office

    在“poi操作office”这一主题中,我们主要讨论如何使用Apache POI来操作Microsoft Office文件。以下是一些关键知识点: 1. **Apache POI介绍**:Apache POI是一个开源项目,由Apache软件基金会维护。它提供了一组...

    poi office操作工具4.0.0jar包

    这个"poi office操作工具4.0.0jar包"是Apache POI的一个特定版本,提供了在Java环境中对Office文档进行读写操作的功能。在Linux和Windows操作系统上都能运行,使得开发者可以跨平台地处理Office文档。 Apache POI的...

    使用POI将office(doc/docx/ppt/pptx/xls/xlsx)文件转html格式

    POI库提供API来读取和操作Office文档中的各个元素,如文本、表格、图片等。然后,我们可以将这些元素转换成相应的HTML元素,最后组合成一个完整的HTML文件。 三、转换步骤 1. **初始化POI**: 首先,我们需要导入...

    使用poi操作Excel2007工具类及示例(包括完整Jar包)

    Apache POI 是一个开源项目,专门用于处理Microsoft ...通过以上介绍,你应该对如何使用Apache POI操作Excel 2007文件有了基本的理解。你可以参考提供的示例代码,结合自己的需求,开始编写处理Excel文件的应用程序。

    Apache poi - java对Office操作

    Apache POI是Java平台上一个非常重要的开源库,它允许开发者使用纯Java代码来创建、读取和修改Microsoft Office格式的文件,包括Word(DOC、DOCX)、Excel(XLS、XLSX)以及PowerPoint(PPT、PPTX)等。这个库广泛...

    POI 替换word2007文本框的值

    Apache POI 是一个开源项目,专门用于处理微软的Office文档格式,如Word、Excel和PowerPoint等。在本文中,我们将深入探讨如何使用POI库来替换Word2007文档中的文本框值,这对于自动化报告生成、批量文档编辑以及...

Global site tag (gtag.js) - Google Analytics