如何使用JAAPI实现中华民族伟大复兴更具访问性的Java软件

API网关触发函数计算处理示例教程(runtime=java8)
API网关触发函数计算处理示例教程(runtime=java8)
本示例对API网关触发函数计算的使用步骤进行详细介绍,并以运行环境为Java为例,对API网关传入的请求参数进行解析。
通过示例,您将了解
如何使用API网关触发函数计算;
2. 如何在函数中获取API网关传入函数的参数,并将处理结果返回给API网关(以Java运行环境为例)。
API网关触发java runtime的函数计算处理示例教程
是一种事件驱动的服务。函数的执行可以由事件驱动,即当某个事件发生时,触发函数的执行。目前函数计算支持API网关作为事件源,简单说来,当有请求到达已经设置函数计算为后端服务的API网关时,API网关会触发函数的执行,函数计算会将执行结果返回给API网关。
本示例对API网关触发函数计算的使用步骤进行详细介绍,并以运行环境为Java为例,对API网关传入的请求参数进行解析。
通过示例,您将了解
如何使用API网关触发函数计算;
如何在函数中获取API网关传入函数的参数,并将处理结果返回给API网关(以Java运行环境为例)。
本示例分为以下三个步骤
明确API网关和函数计算对接的格式要求(一定要以这个格式,否则互相不认识);
创建服务和需要被API网关触发的函数(已有服务和函数,可跳过此步骤);
在配置函数计算作为API后端服务。
API网关和函数计算对接的格式要求
API网关调用函数服务时,会将API的相关数据包装为一个Map形式传给函数计算服务,函数计算服务处理后,需要按照返回参数的格式返回statusCode,headers,body等相关数据,API网关再将函数计算返回的内容映射到statusCode,header,body等位置返回给客户端。
API网关的传入参数格式
当以函数计算作为API网关的后端服务时,API网关会把请求参数通过一个固定结构传给函数计算的入参event,函数计算通过如下结构去获取需要的参数,然后进行处理,该结构如下:
"path":"api request path",
"httpMethod":"request method name",
"headers":{all headers,including system headers},
"queryParameters":{query parameters},
"pathParameters":{path parameters},
"body":"string of request payload",
"isBase64Encoded":"true|false, indicate if the body is Base64-encode"
函数计算的返回参数格式
函数计算需要将输出内容通过如下JSON格式返回给API网关,方便API网关解析。
"isBase64Encoded":true|false,
"statusCode":httpStatusCode,
"headers":{response headers},
"body":"..."
创建服务和函数
创建服务和函数部分分为两个步骤,本示例以Java Runtime为例
首先需要编写Java代码对API网关传入的参数进行处理,并返回符合格式要求的结果给API网关
创建服务和函数,函数计算提供给我们两种方式创建服务和函数,本示例对两种创建函数的方式分别进行介绍。(如果已有服务就无需重新创建服务了,新建函数就可以)
一种是通过控制台上传代码包的方式创建函数;
另一种是通过命令行工具fcli创建函数。
温馨提示:这里提供了两种创建函数的方法,您根据个人喜好任选其一即可。
编写函数代码
用户在使用Java编程时,必须要实现一个类,它要实现函数计算预定义的接口,目前有2个预定义的接口可以实现(您任选其一即可):
StreamRequestHandler以流的方式接受调用输入(event)和返回执行结果,用户需要从inputStream中读取调用函数时的输入,处理完成后把函数执行结果写入到outputStream中来返回
PojoRequestHandler&I, O&通过泛型的方式,用户可以自定义输入和输出的类型,但是它们必须是POJO类型。下面将举例如何使用这个接口API网关触发函数计算的场景更适合使用PojoRequestHandler&I, O&接口,但是本文也提供使用以StreamRequestHandler接口实现的方法
使用PojoRequestHandler&I, O&接口(推荐)
本示例演示了在Java Runtime中,通过实现函数计算预定义的接口,对从API网关传入的参数进行处理,并将结果返回给API网关的过程。PojoRequestHandler&I, O&通过泛型的方式接受调用输入和返回执行结果,用户可以自定义输入和输出的类型,但是它们必须是POJO类型。下面将举例如何使用这个接口通过自定义类ApiRequest传入API网关的参数,函数计算获取参数,对参数进行处理,并通过ApiResponse返回函数计算处理结果的过程。Java Runtime使用请参考
import com.aliyun.fc.runtime.C
import com.aliyun.fc.runtime.PojoRequestH
import java.util.HashM
import java.util.M
public class ApiTriggerDemo implements PojoRequestHandler&ApiRequest, ApiResponse& {
public ApiResponse handleRequest(ApiRequest request, Context context) {
// Get ApiRequest info
context.getLogger().info(request.toString());
String path = request.getPath();
String httpMethod = request.getHttpMethod();
String body = request.getBody();
context.getLogger().info("path:" + path);
context.getLogger().info("httpMethod:" + httpMethod);
context.getLogger().info("body:" + body);
// Deal with your own logic here
// ApiResponse example
Map headers = new HashMap();
boolean isBase64Encoded =
int statusCode = 200;
String returnBody = "";
return new ApiResponse(headers,isBase64Encoded,statusCode,returnBody);
两个pojo类,ApiRequest类和ApiResponse类如下。注意pojo类的set()和get()方法注意要写全哈
import java.util.M
public class ApiRequest {
private String httpM
private Map queryP
private Map pathP
private boolean isBase64E
public String toString() {
return "Request{" +
"path='" + path + '\'' +
", httpMethod='" + httpMethod + '\'' +
", headers=" + headers +
", queryParameters=" + queryParameters +
", pathParameters=" + pathParameters +
", body='" + body + '\'' +
", isBase64Encoded=" + isBase64Encoded +
public String getPath() {
public void setPath(String path) {
this.path =
public String getHttpMethod() {
return httpM
public void setHttpMethod(String httpMethod) {
this.httpMethod = httpM
public Map getHeaders() {
public void setHeaders(Map headers) {
this.headers =
public Map getQueryParameters() {
return queryP
public void setQueryParameters(Map queryParameters) {
this.queryParameters = queryP
public Map getPathParameters() {
return pathP
public void setPathParameters(Map pathParameters) {
this.pathParameters = pathP
public String getBody() {
public void setBody(String body) {
this.body =
public boolean getIsBase64Encoded() {
return this.isBase64E
public void setIsBase64Encoded(boolean base64Encoded) {
this.isBase64Encoded = base64E
import java.util.M
public class ApiResponse {
private boolean isBase64E
private int statusC
public ApiResponse(Map headers, boolean isBase64Encoded, int statusCode, String body) {
this.headers =
this.isBase64Encoded = isBase64E
this.statusCode = statusC
this.body =
public Map getHeaders() {
public void setHeaders(Map headers) {
this.headers =
public boolean getIsBase64Encoded() {
return isBase64E
public void setIsBase64Encoded(boolean base64Encoded) {
this.isBase64Encoded = base64E
public int getStatusCode() {
return statusC
public void setStatusCode(int statusCode) {
this.statusCode = statusC
public String getBody() {
public void setBody(String body) {
this.body =
pom.xml文件如下
&?xml version="1.0" encoding="UTF-8"?&
&project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&
&modelVersion&4.0.0&/modelVersion&
&groupId&apiTrigger&/groupId&
&artifactId&apiTrigger&/artifactId&
&version&1.0-SNAPSHOT&/version&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-compiler-plugin&/artifactId&
&configuration&
&source&1.8&/source&
&target&1.8&/target&
&/configuration&
&/plugins&
&dependencies&
&dependency&
&groupId&com.aliyun.fc.runtime&/groupId&
&artifactId&fc-java-core&/artifactId&
&version&1.0.0&/version&
&/dependency&
&/dependencies&
&/project&
使用StreamRequestHandler接口
使用StreamRequestHandler接口示例如下,需要将输入的InputStream转换为对应的pojo类,pom文件配置与使用PojoRequestHandler&I, O&接口相同,代码如下
import com.aliyun.fc.runtime.C
import com.aliyun.fc.runtime.StreamRequestH
import com.aliyun.fc.runtime.C
import com.google.gson.G
import java.io.*;
import java.util.Base64;
import java.util.HashM
import java.util.M
public class ApiTriggerDemo2 implements StreamRequestHandler {
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) {
// Convert InputStream to string
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuffer stringBuffer = new StringBuffer();
String string = "";
while ((string = bufferedReader.readLine()) != null) {
stringBuffer.append(string);
String input = stringBuffer.toString();
context.getLogger().info("inputStream: " + input);
Request req = new Gson().fromJson(input, Request.class);
context.getLogger().info("input req: ");
context.getLogger().info(req.toString());
String bodyReq = req.getBody();
Base64.Decoder decoder = Base64.getDecoder();
context.getLogger().info("body: " + new String(decoder.decode(bodyReq)));
// Deal with your own logic here
// construct response
Map headers = new HashMap();
headers.put("x-custom-header", " ");
boolean isBase64Encoded =
int statusCode = 200;
Map body = new HashMap();
Response resp = new Response(headers, isBase64Encoded, statusCode, body);
String respJson = new Gson().toJson(resp);
context.getLogger().info("outputStream: " + respJson);
outputStream.write(respJson.getBytes());
} catch (IOException e) {
e.printStackTrace();
} finally {
outputStream.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
class Request {
private String httpM
private Map queryP
private Map pathP
private boolean isBase64E
public String toString() {
return "Request{" +
"path='" + path + '\'' +
", httpMethod='" + httpMethod + '\'' +
", headers=" + headers +
", queryParameters=" + queryParameters +
", pathParameters=" + pathParameters +
", body='" + body + '\'' +
", isBase64Encoded=" + isBase64Encoded +
public String getBody() {
// FC need to return the response to API gateway in the following JSON format
class Response {
private boolean isBase64E
private int statusC
public Response(Map headers, boolean isBase64Encoded, int statusCode, Map body) {
this.headers =
this.isBase64Encoded = isBase64E
this.statusCode = statusC
this.body =
创建服务和函数
Java代码需要打成jar包上传到函数计算。如果您使用IntelliJ IDEA集成开发环境,打包方式如下(可参考)
File -& Project Structure -& Artifacts -& + -& Jar -& From modules with dependencies -& 选择函数所在的类 -& Apply -& 确定
Build -& Build Artifacts -& 找到对应的Aritifacts -& Build
创建服务和函数
函数计算提供两种方式创建服务和函数,使用控制台创建服务和函数和使用命令行工具fcli创建服务和函数,下面对这两种方式分别进行介绍
1.使用控制台创建服务和函数使用控制台创建服务和函数图文并茂版请参考,本示例只给出基本操作步骤
创建服务:左侧服务列表 -& + -& 创建服务 -& 填写服务相关内容 -& 确定
创建函数:进入对应服务 -& 左侧函数列表 -& + -& 新建函数 -& 使用空白模板 -& 不创建触发器 -& 输入函数名称 -& 运行环境选择Java8 -& 代码上传方式选择代码包上传 -& 选择刚刚生成的jar包 -& 设置函数入口,入口形式为[package].[class]::[method],例如我打包后的函数入口为ApiTriggerDemo::handleRequest,其他值选择默认即可这样函数就创建好啦
2.使用命令行工具创建服务和函数
创建服务: mks fc-demo,即创建服务,服务名称为fc-demo (在创建服务时可以指定log project等信息,具体内容可参考)
创建函数:mkf apiTrigger -t java8 -h ApiTriggerDemo::handleRequest -d fcDemo/out/artifacts/apiTrigger_jar (其中apiTrigger为函数名称,-t为指定运行环境,-h指定函数入口,-d指定代码包,此路径为代码包路径相对于fcli所在位置的路径,具体内容可参考)
去,分组管理 -& 创建分组,新建一个API分组(已经有API分组可跳过这步)
API列表 -& 新建API,步骤如图所示
通过API网关触发函数计算可参考
测试触发器
测试成功后发布API即可
That's all,enjoy it~Any question,可留言,或加入函数计算官方客户群(钉钉群号:)
用云栖社区APP,舒服~
【云栖快讯】云栖社区技术交流群汇总,阿里巴巴技术专家及云栖社区专家等你加入互动,老铁,了解一下?&&
阿里云函数计算(Function Compute)是一个事件驱动的全托管计算服务。通过函数计...
API 网关(API Gateway),提供高性能、高可用的 API 托管服务,帮助用户对外...搜索结果部分由
哎呦,网络不给力,请重试JACOB - Java COM Bridge download | SourceForge.net
JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java. It uses JNI to make native calls to the COM libraries. JACOB runs on x86 and x64 environments supporting 32 bit and 64 bit JVMs
Categories
Follow JACOB - Java COM Bridge
Other Useful Business Software
Do you have a GitHub project? Now you can automatically sync your releases to SourceForge & take advantage of both platforms. The GitHub Import Tool allows you to quickly & easily import your GitHub project repos, releases, issues, & wiki to SourceForge with a few clicks. Then your future releases will be synced to SourceForge automatically. Your project will reach over 35 million more people per month and you’ll get detailed download statistics.
Rate This Project
User Ratings
★★★★★
★★★★
★★★
★★
An excellent and stable bridge! Kudos!!
You can not work with the Cyrillic alphabet
This is an incredibly helpful project for anyone wanting to integrate MS Office with Java apps
Useful COM+ Java bridge
Great project indeed, lack of documentation ... almost like all source code project. ;)
Additional Project Details
gptadRenderers['SF_ProjectSum_300x250_A'] = function(){
// jshint ignore:line
if (!SF.adblock) {
$('#div-gpt-ad-5-0').parents('.draper').css("min-height", 250 + 13); // 13 for height of .lbl-ad
googletag.cmd.push(function() {
googletag.display('div-gpt-ad-5-0');
gptadRenderers['SF_ProjectSum_300x250_A']();
// jshint ignore:line
Thanks for helping keep SourceForge clean.
You seem to have CSS turned off.
Please don't fill out this field.
You seem to have CSS turned off.
Please don't fill out this field.
Briefly describe the problem (required):
Upload screenshot of ad (required):
, or drag & drop file here.
Screenshot instructions:
Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here &
(This may not be possible with some types of ads)
Please provide the ad click URL, if possible:
Get latest updates about Open Source Projects, Conferences and News.
Select Country
Afghanistan
Aland Islands
American Samoa
Antarctica
Antigua and Barbuda
Azerbaijan
Bangladesh
Bosnia and Herzegovina
Bouvet Island
British Indian Ocean Territory
Brunei Darussalam
Burkina Faso
Cape Verde
Cayman Islands
Central African Republic
Christmas Island
Cocos (Keeling) Islands
Congo, The Democratic Republic of the
Cook Islands
Costa Rica
Cote D'Ivoire
Czech Republic
Dominican Republic
El Salvador
Equatorial Guinea
Falkland Islands (Malvinas)
Faroe Islands
French Guiana
French Polynesia
French Southern Territories
Guadeloupe
Guinea-Bissau
Heard Island and McDonald Islands
Holy See (Vatican City State)
Iran, Islamic Republic of
Isle of Man
Kazakhstan
Korea, Democratic People's Republic of
Korea, Republic of
Kyrgyzstan
Lao People's Democratic Republic
Libyan Arab Jamahiriya
Liechtenstein
Luxembourg
Madagascar
Marshall Islands
Martinique
Mauritania
Micronesia, Federated States of
Moldova, Republic of
Montenegro
Montserrat
Mozambique
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Norfolk Island
Northern Mariana Islands
Palestinian Territory
Papua New Guinea
Philippines
Pitcairn Islands
Puerto Rico
Russian Federation
Saint Barthelemy
Saint Helena
Saint Kitts and Nevis
Saint Lucia
Saint Martin
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
San Marino
Sao Tome and Principe
Saudi Arabia
Seychelles
Sierra Leone
Solomon Islands
South Africa
South Georgia and the South Sandwich Islands
Svalbard and Jan Mayen
Switzerland
Syrian Arab Republic
Tajikistan
Tanzania, United Republic of
Timor-Leste
Trinidad and Tobago
Turkmenistan
Turks and Caicos Islands
United Arab Emirates
United Kingdom
United States
United States Minor Outlying Islands
Uzbekistan
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Select State
California
Connecticut
District of Columbia
Massachusetts
Mississippi
New Hampshire
New Jersey
New Mexico
North Carolina
North Dakota
Pennsylvania
Puerto Rico
Rhode Island
South Carolina
South Dakota
Washington
West Virginia
Yes, also send me special offers about products & services regarding:
Network Security
Software Development
Artificial Intelligence
You can contact me via:
Email (required)
JavaScript is required for this form.
I agree to receive these communications from SourceForge.net.
I understand that I can withdraw my consent at anytime. Please refer to our
for more details.
I agree to receive these communications from SourceForge.net via the means indicated above.
I understand that I can withdraw my consent at anytime. Please refer to our
for more details.
You seem to have CSS turned off.
Please don't fill out this field.
You seem to have CSS turned off.
Please don't fill out this field.eclipse导入java和android sdk源码,帮助文档_百度经验
&&&&&&&&&电脑软件eclipse导入java和android sdk源码,帮助文档<div class="audio-wp audio-wp-1" data-text='eclipse导入java和android sdk源码,帮助文档& & 在进行android开发的工程中,经常需要帮助,文本主要解决& & 1、eclipse 如何导入 Java 源码& & 2、eclipse 如何导入 android, android sdk 源码&& & 3、eclipse 如何导入 Java, android, android sdk 帮助文档& & 4、解决 eclipse 导入不了 android, android sdk 源码的问题& &&方便他人亦是方便自己,如果觉得还行就点下右边的投票吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦, 谢谢!' data-for=''>听语音1234567
百度经验:jingyan.baidu.com& & 在进行android开发的工程中,经常需要帮助,文本主要解决& & 1、eclipse 如何导入 Java 源码& & 2、eclipse 如何导入 android, android sdk 源码&& & 3、eclipse 如何导入 Java, android, android sdk 帮助文档& & 4、解决 eclipse 导入不了 android, android sdk 源码的问题& &&方便他人亦是方便自己,如果觉得还行就点下右边的投票吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦, 谢谢!百度经验:jingyan.baidu.comwin7 x64adt-bundle-windows-x86_64-jdk1.8.0_11百度经验:jingyan.baidu.com11、打开eclipse;2、新建一个“HelloWorld”新工程;2打开 “工程-&src-&fuke.helloworld-&MainActivity.Java”文件3按住键盘上的Ctrl键后,鼠标左键点击&Activity4点击 Attach Source...51、选择“External location”2、点击 &External Folder&6发现sdk目录下面没有 sources&目录END百度经验:jingyan.baidu.com1打开 工具栏上的 android sdk manager2更新完所有的sdk;注:如何出现sdk无法更新,可以参见“android sdk无法更新的解决方法”& & http://jingyan.baidu.com/article/636f38bbb84610f0.html3重复“查看源码”中的 3、4、5步后,发现sdk目录下面1、由于存在&docs,所以可以查看帮助文档2、由于存在&sources, 所以可以查看源码了3、由于&sources 目录下面有 Java 源码,所以不需要单独导入Java源码41、选择 sources 目录;2、耐心等待加载源码;3、最后效果;END百度经验:jingyan.baidu.com1依次打开:“菜单-&Help-&Dynamic Help”21、鼠标停留在activity上面会出现下拉框试的帮助文档;2、鼠标左键双击activity会出现右侧Help里面的帮助文档;31、点击“Javadoc for &#39;android.app.Activity”;2、初次使用,清耐心等待加载哦4结果显示如下:5当然也可以通过打开&&docs\index.html& 来直接访问帮助文档,如我的地址是:&D:\Android\adt-bundle-windows-x86_64-\sdk\docs\index.html&,打开后的效果如下:END百度经验:jingyan.baidu.com1& & 到此,android sdk 源码,java 源码,android sdk帮助文档导入到了eclipse中,便可以开始快乐的编程了!& & 方便他人亦是方便自己,如果觉得还行就点下下边的投票吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦, 谢谢!END原作者:付科经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(412)已投票(412)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验00000热门杂志第1期你不知道的iPad技巧3810次分享第1期win7电脑那些事6662次分享第2期新人玩转百度经验1421次分享第1期Win8.1实用小技巧2667次分享第1期小白装大神1950次分享◆请扫描分享到朋友圈Apache Wide
Apache POI - the Java API for Microsoft Documents
Project News
29 June 2018 - XMLBeans 3.0.0 available
The Apache POI team is pleased to announce the release of XMLBeans 3.0.0.
Featured are a handful of bug fixes. The Apache POI team have taken over XMLBeans and intend to maintain it, due to its importance in the poi-ooxml codebase.
A summary of changes is available in the
People interested should also follow the
to track progress.
The XMLBeans
has been reopened and feel free to open issues.
The upcoming POI 4.0.0 release will use XMLBeans 3.0.0.
XMLBeans 3.0.0 requires Java 6 or newer.
15 September 2017 - POI 3.17 available
The Apache POI team is pleased to announce the release of 3.17.
Featured are a handful of new areas of functionality and numerous bug fixes.
A summary of changes is available in the
A full list of changes is available in the .
People interested should also follow the
to track progress.
page for more details.
POI 3.17 is the last release to support Java 6. The next feature-release will be 4.0.0 and will require Java 8 or newer.
15 August 2017 - Initial support for JDK 9
We did some work to verify that compilation with Java 9 is working and
that all unit-tests pass.
See the details in the .
20 March 2017 - CVE- - Possible DOS (Denial of Service) in Apache POI versions prior to 3.15
Apache POI in versions prior to release 3.15 allows remote attackers to cause a denial of service (CPU consumption)
via a specially crafted OOXML file, aka an XML Entity Expansion (XEE) attack.
Users with applications which accept content from external or untrusted sources are advised to upgrade to
Apache POI 3.15 or newer.
Thanks to Xiaolong Zhu and Huijun Chen from Huawei Technologies Co., Ltd. for reporting the vulnerability.
Mission Statement
The Apache POI Project's mission is to create and maintain Java APIs for manipulating various file formats
based upon the Office Open XML standards (OOXML) and Microsoft's OLE 2 Compound Document format (OLE2).
In short, you can read and write MS Excel files using Java.
In addition, you can read and write MS Word and MS PowerPoint files using Java.
Apache POI is your Java Excel
solution (for Excel 97-2008). We have a complete API for porting other OOXML and OLE2 formats and welcome others to participate.
OLE2 files include most Microsoft Office files such as XLS, DOC, and PPT as well as MFC serialization API based file formats.
The project provides APIs for the
Office OpenXML Format is the new standards based XML file format found in Microsoft Office 2007 and 2008.
This includes XLSX, DOCX and PPTX. The project provides a low level API to support the Open Packaging Conventions
For each MS Office application there exists a component module that attempts to provide a common high level Java api to both OLE2 and OOXML
document formats. This is most developed for .
Work is progressing for
The project has some support for . Microsoft opened the specifications
to this format in October 2007. We would welcome contributions.
There are also projects for
As a general policy we collaborate as much as possible with other projects to
provide this functionality.
Examples include:
which there are serializers for HSSF;
with whom we collaborate in documenting the
for which we provide format interpretors.
When practical, we donate
components directly to those projects for POI-enabling them.
Why should I use Apache POI?
A major use of the Apache POI api is for
applications
such as web spiders, index builders, and content management systems.
So why should you use POIFS, HSSF or XSSF?
You'd use POIFS if you had a document written in OLE 2 Compound Document Format, probably written using
MFC, that you needed to read in Java. Alternatively, you'd use POIFS to write OLE 2 Compound Document Format
if you needed to inter-operate with software running on the Windows platform. We are not just bragging when
we say that POIFS is the most complete and correct implementation of this file format to date!
You'd use HSSF if you needed to read or write an Excel file using Java (XLS). You'd use
XSSF if you need to read or write an OOXML Excel file using Java (XLSX). The combined
SS interface allows you to easily read and write all kinds of Excel files (XLS and XLSX)
using Java. Additionally there is a specialized SXSSF implementation which allows to write
very large Excel (XLSX) files in a memory optimized way.
Components
The Apache POI Project provides several component modules some of which may not be of interest to you.
Use the information on our
page to determine which
jar files to include in your classpath.
Contributing
So you'd like to contribute to the project? Great! We need enthusiastic,
hard-working, talented folks to help us on the project, no matter your
background. So if you're motivated, ready, and have the time: Download the
source from the
, join the
, and we'll be happy to
help you get started on the project!
To view the
tasks, an internet connection is required.
Please read our .
When your contribution is ready submit a patch to our
by&Andrew C. Oliver,&Glen Stampoultzis,&Avik Sengupta,&Rainer Klute,&David Fisher
Send feedback about the website to:

我要回帖

更多关于 实现中华民族伟大复兴 的文章

 

随机推荐