使用 Apache POI 处理 Microsoft Office 文档

2015-01-25 POI

##POI 概述

Apache POI 项目的使命是创造和维护 Java API 操纵各种格式的文件,其中包括基于 Office Open XML 标准(OOXML)和微软的OLE 2 Compound Document 格式(OLE2)。总之,你可以使用 Java 读写 MS Excel 文件。此外,您可以使用 Java 读取和写入 MS Word 和 MS PowerPoint 文件。Apache POI 是你的 Java Excel 解决方案(用于Excel 97-2008)。包含了一个完整的 API 用于移植其他 OOXML 和OLE2 格式。

OLE2 文件包括了 Microsoft Office 文件,比如 XLS, DOC, PPT 以及 MFC 的序列化 API 为基础的文件格式。项目提供 OLE2 Filesystem (POIFS)OLE2 Document Properties (HPSF) 等 API。

Office OpenXML Format 是 Microsoft Office 2007 和 2008 中新的基于 XML 的标准。包括 XLSX, DOCX 和 PPTX。该项目提供了一个低级别的 API 使用 openxml4j来支持 Open Packaging Conventions(开放打包约定)。

针对每个 现存的 MS Office 模块组件,试图提供一个共同的高级别 Java api 给 OLE2 和 OOXML 文档格式。Excel (SS=HSSF+XSSF) Word (HWPF+XWPF),PowerPoint (HSLF+XSLF),Outlook (HSMF), Visio (HDGF), TNEF (HMEF), 和 Publisher (HPBF).

该项目尽可能与其他项目合作提供此功能。比如:Cocoon提供 HSSF 的序列化;与Open Office.org合作处理 XLS 格式;和 Tika/ Lucene提供格式解释器。


调试异步加载页面中的js文件

2015-01-17 JavaScript

问题

在使用 EasyUI 时,采用了异步加载 div 页面的方式,来优化页面的性能。但是在浏览器 debug 时,发现 div 页面中的 js 文件是不可见的,即无法断点调试。

比如,我自己写了一个 entMgt 的模块 div页面,里面引用了 entMgt.js

但是 debug ,却见不到该 js 文件

解决

就是在需要调试的 js 文件顶部加一行代码:

//# sourceURL=entMgt.js

搞定

参考引用

  • https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default


Spirng 4 、Hibernate 4 事务管理

2015-01-03 Spring Hibernate

建议将 Hibernate SessionFactory 交给 Spring 进行事务管理,在 applicationContext.xml 里面配置

<bean id="sessionFactory"
	class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
	<!-- 数据源 -->
	<property name="dataSource" ref="dataSource" />

	<!-- hibernate的相关属性配置 -->
	<property name="hibernateProperties">
		<props>
		...
</bean>

<!-- 定义事务管理 -->
<bean id="transactionManager"
	class="org.springframework.orm.hibernate4.HibernateTransactionManager">
	<property name="sessionFactory" ref="sessionFactory" />
	<!-- 自动扫描实体对象 com.waylau.entity 的包结构中存放实体类 -->
	<property name="packagesToScan" value="com.waylau.entity" />
</bean>

使用 SessionFactory

@Autowired
private SessionFactory sessionFactory;
 
public Session getSession() {
    return sessionFactory.getCurrentSession();
}

Maven web [email protected] must override a superclass method` 问题解决

2015-01-02 Maven

##问题

在 eclipse 中开发 Maven web 项目时出现 @Override must override a superclass method 问题

##原因:

是 JDK 版本过低不支持 @Override 注解导致的,提高版本到 1.5 之后(不含1.5)就可以了。



在 Jersey 2 使用 Spring 4

2014-12-30 Spring Jersey

Jersey 提供对 Spring DI 的扩展。使得 Jersey 在使用 Spring bean 时 就像是 JAX-RS 的组件 (比如 资源和提供者) 并且允许 Spring 注入 Jersey 管理的组件中。比如:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import org.springframework.stereotype.Component;

@Component
@Path("/")
public class SomeResource {

    @Transactional
    @GET
    public void updateResource() {
        // ...
    }
}

详见《Jersey 2.x 用户指南》 Chapter 22. Spring DI 使用 Spring 注入