Avoimen lähdekoodin Java-kirjasto laskentataulukkoasiakirjoille
Muunna Excel-tiedostoja Java-sovelluksissa avoimen lähdekoodin sovellusliittymän kautta.
Documents4J on avoimen lähdekoodin Java-sovellusliittymä, joka muuntaa Microsoft Excelin muihin tiedostomuotoihin. Tämä saavutetaan delegoimalla muunnos mille tahansa alkuperäiselle sovellukselle, joka ymmärtää tietyn tiedoston muuntamisen haluttuun kohdemuotoon. API tarjoaa kahden tyyppisiä toteutuksia paikallisesti ja etänä. Käyttämällä paikallista versiota asiakirja voidaan muuntaa samalla koneella, joka on kaapeli muuntaa pyydettyä tiedostomuotoa. Remote API:n avulla lähetät asiakirjan palvelimelle REST-API:n avulla ja palvelin suorittaa pyydetyn muunnoksen.
Documents4J on läpinäkyvä ja helppokäyttöinen. Kehittäjät voivat työskennellä sovellusliittymän paikallisen version kanssa, kun taas kehitystä ja etäversiota voidaan käyttää, kun kehittäjät julkaisevat sovelluksen tuotannossa.
Documents4J:n käytön aloittaminen
Ensinnäkin sinun on luotava kopio document4j:stä paikallisella koneellasi. Yksinkertaisesti kloonaa document4j:n arkisto käyttämällä gitiä tai kloonaamalla se suoraan GitHubissa. Kun arkisto on kloonattu, voit rakentaa projektin Maven avulla
Asenna Documents4J GitHubin kautta
git clone https://github.com/documents4j/documents4j.git
cd documents4j
mvn package
Muunna Microsoft Excel Javalla
Documents4J on sujuva API asiakirjojen muuntamiseen. API ei paljasta taustamuuntimen toteutuksen yksityiskohtia. Asiakirjan muuntamista varten API tarjoaa IConverter-käyttöliittymän. Tämän käyttöliittymän avulla voit muuntaa Microsoft Excel -tiedostomuodon haluamaasi tiedostomuotoon. Voit selvittää tuetut muunnostiedostomuodot kysymällä getSupportedConversion()-menetelmää, joka palauttaa lähde- ja kohdetiedostomuodot.
Muunna Excel-tiedosto muuhun tiedostomuotoon Javan kautta
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)) )
Muunna Office-asiakirjat PDF-muotoon Javalla
Avoimen lähdekoodin Documents4J-kirjasto sisältää useita tärkeitä ominaisuuksia Microsoft Office -asiakirjojen, kuten Word-, Excel- ja PowerPoint-tiedostojen, muuntamiseen muihin tukitiedostomuotoihin, kuten PDF- tai kuvatiedostomuotoihin. Seuraava esimerkki osoitti, kuinka helposti ohjelmoijat voivat ladata ja muuntaa Microsoft Word Docx -tiedoston PDF-tiedostoon vain parilla koodirivillä.
Muunna Office Docx -tiedosto PDF-muotoon Java-kirjaston kautta
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();
}
}