Open Source Java-bibliotek til regnearksdokumenter
Konverter Excel-filer i Java-applikationer via Open Source API.
Documents4J er en open source Java API fra konvertering af Microsoft Excel til andre filformater. Dette opnås ved at uddelegere konverteringen til ethvert indbygget program, som forstår konverteringen af den givne fil til det ønskede målformat. API'en tilbyder to typer implementeringer lokalt og eksternt. Ved at bruge den lokale version kan dokumentet konverteres på den samme maskine, som er kabel til at konvertere det ønskede filformat. Ved hjælp af Remote API sender du et dokument til serveren ved hjælp af REST-API, og serveren udfører den anmodede konvertering.
Documents4J er gennemsigtig og nem at bruge. Udviklere kan arbejde med den lokale version af API'et, mens udvikling og fjernversionen kan bruges, når udviklerne udgiver appen på produktionen.
Kom godt i gang med Documents4J
Først og fremmest skal du oprette en kopi af documents4j på din lokale maskine. Du skal blot klone documents4j's repository ved at bruge git eller ved at klone det direkte på GitHub. Når depotet er klonet, kan du bygge projektet ved hjælp af Mave
Installer Documents4J via GitHub
git clone https://github.com/documents4j/documents4j.git
cd documents4j
mvn package
Konverter Microsoft Excel ved hjælp af Java
Documents4J er en flydende API til at udføre dokumentkonvertering. API'en afslører ingen detaljer om implementeringen af backing-konverteren. For at udføre dokumentkonvertering tilbyder API'en IConverter-grænseflade. Ved hjælp af denne grænseflade kan du konvertere Microsoft Excel-filformatet til det ønskede filformat. For at finde ud af de understøttede konverteringsfilformater kan du forespørge getSupportedConversion()-metoden, som returnerer kilde- og målfilformaterne.
Konverter Excel-fil til andet filformat via Java
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)) )
Konverter Office-dokumenter til PDF via Java
Open source-biblioteket Documents4J har inkluderet flere vigtige funktioner til at konvertere Microsoft Office-dokumenter som Word-, Excel- og PowerPoint-filer til andre støttefilformater som PDF eller billede osv. Det følgende eksempel viste, hvor nemt softwareprogrammører kan indlæse og konvertere en Microsoft Word Docx-fil til PDF-fil med blot et par linjer kode.
Konverter Office Docx-fil til PDF via Java Library
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();
}
}