1. 产品
  2.   电子表格
  3.   Java
  4.   Documents4J
 
  

用于电子表格文档的开源 Java 库

通过开源 API 在 Java 应用程序中转换 Excel 文件。

Documents4J 是一个开源 Java API,用于将 Microsoft Excel 转换为其他文件格式。这是通过将转换委托给任何理解将给定文件转换为所需目标格式的本机应用程序来实现的。 API 提供本地和远程两种类型的实现。使用本地版本的文件可以在同一台机器上进行转换,即转换所需文件格式的电缆。使用远程 API,您使用 REST-API 将文档发送到服务器,然后服务器执行请求的转换。

Documents4J 透明且易于使用。开发人员可以在开发时使用本地版本的 API,而在开发人员将应用程序发布到生产环境时可以使用远程版本。

Previous Next

Documents4J 入门

首先,您需要在本地机器上创建documents4j 的副本。只需使用 git 或直接在 GitHub 上克隆documents4j 的存储库。克隆存储库后,您可以使用 Mave 构建项目

通过 GitHub 安装 Documents4J


git clone https://github.com/documents4j/documents4j.git
cd documents4j
mvn package
            

使用 Java 转换 Microsoft Excel

Documents4J 是用于执行文档转换的流畅 API。 API 不公开支持转换器实现的任何细节。为了执行文档转换,API 提供了 IConverter 接口。使用此界面,您可以将 Microsoft Excel 文件格式转换为所需的文件格式。要找出支持的转换文件格式,您可以查询 getSupportedConversion() 方法,该方法将返回源文件格式和目标文件格式。

通过Java转换Excel文件到其他文件格式


Const WdExportFormatPDF = 17
Const MagicFormatPDF = 999
Dim arguments
Set arguments = WScript.Arguments
' Transforms a file using MS Excel into the given format.
Function ConvertFile( inputFile, outputFile, formatEnumeration )
  Dim fileSystemObject
  Dim excelApplication
  Dim excelDocument
  ' Get the running instance of MS Excel. If Excel is not running, exit the conversion.
  On Error Resume Next
  Set excelApplication = GetObject(, "Excel.Application")
  If Err <> 0 Then
    WScript.Quit -6
  End If
  On Error GoTo 0
  ' Find the source file on the file system.
  Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
  inputFile = fileSystemObject.GetAbsolutePathName(inputFile)
  ' Convert the source file only if it exists.
  If fileSystemObject.FileExists(inputFile) Then
    ' Attempt to open the source document.
    On Error Resume Next
    Set excelDocument = excelApplication.Workbooks.Open(inputFile, , True)
    If Err <> 0 Then
      WScript.Quit -2
    End If
    On Error GoTo 0
    On Error Resume Next
    If formatEnumeration = MagicFormatPDF Then
      excelDocument.ExportAsFixedFormat xlTypePDF, outputFile
    Else
      excelDocument.SaveAs outputFile, formatEnumeration
    End If
    ' Close the source document.
    excelDocument.Close False
    If Err <> 0 Then
      WScript.Quit -3
    End If
    On Error GoTo 0
    ' Signal that the conversion was successful.
    WScript.Quit 2
  Else
    ' Files does not exist, could not convert
    WScript.Quit -4
  End If
End Function
' Execute the script.
Call ConvertFile( WScript.Arguments.Unnamed.Item(0), WScript.Arguments.Unnamed.Item(1), CInt(WScript.Arguments.Unnamed.Item(2)) )

转换办公室文件PDF至Java

开源文档4J图书馆已经包括了将Microsoft办公文件(如Word、Excel和PowerPoint文件)转换为其他支持文件格式(如PDF或图像等)的几个重要点。 下面的例子表明软件程序员可以很容易地加载并将Microsoft Word Docx文件转换成仅仅几行代码的PDF文件。

通过Java个图书馆汇编Docx文件至PDF


public class NewMain {
    /**
     * @param args the command line arguments
     * @throws java.io.FileNotFoundException
     */
    public static void main(String[] args) throws FileNotFoundException, IOException, InterruptedException, ExecutionException {
    ByteArrayOutputStream bo = new ByteArrayOutputStream();
    InputStream in = new BufferedInputStream(new FileInputStream(System.getProperty("user.dir") + File.separator +"out.rtf"));
    IConverter converter = LocalConverter.builder()
            .baseFolder(new File(System.getProperty("user.dir") + File.separator +"test"))
            .workerPool(20, 25, 2, TimeUnit.SECONDS)
            .processTimeout(5, TimeUnit.SECONDS)
            .build();
    Future conversion = converter
            .convert(in).as(DocumentType.RTF)
            .to(bo).as(DocumentType.PDF)
            .prioritizeWith(1000) // optional
            .schedule();
    conversion.get();
    try (OutputStream outputStream = new FileOutputStream("out.pdf")) {
        bo.writeTo(outputStream);
    }
    in.close();
    bo.close();
}
}
 中国人