本文目录一览:

poi导出ppt怎么设置ppt母版

PPT模板需要再模板视图中设置,步骤如下:

我用的office PowerPoint演示 ,不过支持免费的WPS。

分为直接套用模板和自定义模板两种,

1.绍模板套用

模板套用很简单,首先要去找一个适合演讲展示内容主题的模板,

可以直接安装一个“文档美化大师”一键美化文档,使用方法很简单,这里就不多介绍,安装打开已经做好的ppt一键美化即可,也可以进去挑选喜欢的ppt模板。

2.模板更改和自定义:视图-幻灯片母版

这里有12个板式,分别对应的是板式中的11个板式+1个通用板式(模板中的第一个)

然后在对应板式里编辑相应的模板,字体样式、背景颜色

如果只是想要给幻灯片加个背景,那么直接在最顶上那个通用板式底部加一个背景就行

下图中,左侧的12个板式对应的是幻灯片普通视图编辑框中的11个板式+一个通用视图

下图是幻灯片板式入口,模板视图中编辑好,此处可以直接套用

编辑完成关闭,然后到普通视图中去添加想要展示的内容即可

注意的是,直接在非模板视图也是可以添加的,就是背景图片不是锁定样式

使用POI将ppt幻灯片导出为图片,但是其中的中文是乱码,如何解决

应该是和字体定义有关系的。POI中默认没有中文字体。要自己加,而且对于斜体、粗体的控制,中文字体和英文字体的处理是不同的,而POI只支持英文的处理方式。几年前曾经作为一个BUG提交给POI,但POI答复不认为是BUG。然后我提交new Feature,建议按照Java Swing中对中文字体的处理方法来处理,POI项目组答复和体系结构有关系,不准备追加,不知道现在有没有进展。

印象中POI有一个字体文件的定义,要参看他的文档中,关于Locale 和 font的说明。

poi怎么在ppt中生成图表(如:柱图、曲线图之类)

告诉你个小秘密:别指望单独拿poi生成图表了,生成不了。要么就用poi整合excel下的vba生成图表,要不就就用报表软件比如jfreechart预先生成图表图片,然后把图表图片引入excel中。 我常用第二种方法。

apache poi获取ppt全部内容和细化读取的区别

有时候我们需要从Excel文件中读取数据,或者我们为了商务或者财政的目的生成Excel格式的报表.Java没有对操作Excel文件提供内在的支持,所以我们需要寻找开源的APIs.当我开始寻找操作Excel的APIs时候,大部分人建议使用JExcel或者Apache POI.

在深入研究后,我发现由于以下主要原因Apache POI是正确的选择.还有些关于高级特性的原因,但是我们不深入太多细节.

1)Apache基金的支持.

2)JExcel不支持xlsx格式而POI既支持xls格式又支持xlsx格式.

3)Apache POI是基于流的处理,因此更适合大文件和要求更少的内存.

Apache POI对处理Excel文件提供了强大的支持,并且能处理xls和xlsx格式的电子表格.

关于Apache POI一些重要的地方:

1)Apache POI包含适合Excel97-2007(.xls文件)的HSSF实现.

2)Apache POI XSSF实现用来处理Excel2007文件(.xlsx).

3)Apache POI HSSF和XSSF提供了读/写/修改Excel表格的机制.

4)Apache POI提供了XSSF的一个扩展SXSSF用来处理非常大的Excel工作单元.SXSSF API需要更少的内存,因此当处理非常大的电子表格同时堆内存又有限时,很合适使用.

5)有两种模式可供选择--事件模式和用户模式.事件模式要求更少的内存,因为用tokens来读取Excel并处理.用户模式更加面向对象并且容易使用,因此在我们的示例中使用用户 模式.

6)Apache POI为额外的Excel特性提供了强大支持,例如处理公式,创建单元格样式--颜色,边框,字体,头部,脚部,数据验证,图像,超链接等.

Apache POI的Maven依赖

[java] view plaincopy

span style="font-size:14px;"dependency

groupIdorg.apache.poi/groupId

artifactIdpoi/artifactId

version3.10-FINAL/version

/dependency

dependency

groupIdorg.apache.poi/groupId

artifactIdpoi-ooxml/artifactId

version3.10-FINAL/version

/dependency/span

Apache POI的当前版本是3.10-FINAL.如果你使用单独的java应用,添加jars根据下面的图片.

读取Excel文件

假设我们有一个叫Sample.xlsx的Excel文件,里面有两个sheet并且下面图片中的数据.我们想要读取这个Excel文件并且创建Countries list.sheet1有些额外的数据,当我们解析时会忽略它.

我们的国家(Country)java bean如下:

Country.java

[java] view plaincopy

package com.journaldev.excel.read;

public class Country {

private String name;

private String shortCode;

public Country(String n, String c){

this.name=n;

this.shortCode=c;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getShortCode() {

return shortCode;

}

public void setShortCode(String shortCode) {

this.shortCode = shortCode;

}

@Override

public String toString(){

return name + "::" + shortCode;

}

}

读取Excel文件并创建Countries list代码如下:

ReadExcelFileToList.java

[java] view plaincopy

package com.journaldev.excel.read;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcelFileToList {

public static ListCountry readExcelData(String fileName) {

ListCountry countriesList = new ArrayListCountry();

try {

//Create the input stream from the xlsx/xls file

FileInputStream fis = new FileInputStream(fileName);

//Create Workbook instance for xlsx/xls file input stream

Workbook workbook = null;

if(fileName.toLowerCase().endsWith("xlsx")){

workbook = new XSSFWorkbook(fis);

}else if(fileName.toLowerCase().endsWith("xls")){

workbook = new HSSFWorkbook(fis);

}

//Get the number of sheets in the xlsx file

int numberOfSheets = workbook.getNumberOfSheets();

//loop through each of the sheets

for(int i=0; i numberOfSheets; i++){

//Get the nth sheet from the workbook

Sheet sheet = workbook.getSheetAt(i);

//every sheet has rows, iterate over them

IteratorRow rowIterator = sheet.iterator();

while (rowIterator.hasNext())

{

String name = "";

String shortCode = "";

//Get the row object

Row row = rowIterator.next();

//Every row has columns, get the column iterator and iterate over them

IteratorCell cellIterator = row.cellIterator();

while (cellIterator.hasNext())

{

//Get the Cell object

Cell cell = cellIterator.next();

//check the cell type and process accordingly

switch(cell.getCellType()){

case Cell.CELL_TYPE_STRING:

if(shortCode.equalsIgnoreCase("")){

shortCode = cell.getStringCellValue().trim();

}else if(name.equalsIgnoreCase("")){

//2nd column

name = cell.getStringCellValue().trim();

}else{

//random data, leave it

System.out.println("Random data::"+cell.getStringCellValue());

}

break;

case Cell.CELL_TYPE_NUMERIC:

System.out.println("Random data::"+cell.getNumericCellValue());

}

} //end of cell iterator

Country c = new Country(name, shortCode);

countriesList.add(c);

} //end of rows iterator

} //end of sheets for loop

//close file input stream

fis.close();

} catch (IOException e) {

e.printStackTrace();

}

return countriesList;

}

public static void main(String args[]){

ListCountry list = readExcelData("Sample.xlsx");

System.out.println("Country List/n"+list);

}

}

这个程序很容易明白,主要步骤如下:

1)根据文件类型(.xls与.xlsx)创建Workbook实例,xlsx用XSSFWorkbook,xls用HSSFWorkbook.我们可以基于文件名字使用工 厂模式创建一个包装类来创建Workbook实例.

2)使用Workbook getNumberOfSheets()来获取sheet的数量,然后循环解析每一个sheet.使用getSheetAt(int i)方法获取 Sheet实例.

3)获取Row和Cell迭代器来获取每一个Cell对象.Apache POI在这里使用了迭代器模式.

4)使用switch-case根据Cell的类型来处理它.