Open Source Java Library for Sreadsheet Documents
Převádějte soubory Excel v aplikacích Java prostřednictvím rozhraní Open Source API.
Documents4J je open-source Java API pro převod aplikace Microsoft Excel do jiných formátů souborů. Toho je dosaženo delegováním převodu na jakoukoli nativní aplikaci, která rozumí převodu daného souboru do požadovaného cílového formátu. Rozhraní API nabízí dva typy implementací místní a vzdálené. Pomocí místní verze lze dokument převést na stejném počítači, který je kabelem pro převod požadovaného formátu souboru. Pomocí vzdáleného API odešlete na server dokument pomocí REST-API a server provede požadovanou konverzi.
Documents4J je transparentní a snadno se používá. Vývojáři mohou při vývoji pracovat s místní verzí API a vzdálenou verzi lze použít, když vývojáři publikují aplikaci v produkci.
Začínáme s Documents4J
Nejprve si musíte vytvořit kopii documents4j na místním počítači. Jednoduše naklonujte úložiště documents4j pomocí git nebo jej naklonujte přímo na GitHubu. Jakmile je úložiště naklonováno, můžete projekt sestavit pomocí Mave
Nainstalujte Documents4J přes GitHub
git clone https://github.com/documents4j/documents4j.git
cd documents4j
mvn package
Převeďte Microsoft Excel pomocí Java
Documents4J je plynulé API pro provádění převodu dokumentů. Rozhraní API nezveřejňuje žádné podrobnosti o implementaci záložního převodníku. Pro převod dokumentů API nabízí rozhraní IConverter. Pomocí tohoto rozhraní můžete převést formát souboru Microsoft Excel na požadovaný formát souboru. Chcete-li zjistit podporované formáty souborů konverze, můžete dotaz na metodu getSupportedConversion(), která vrátí zdrojový a cílový formát souboru.
Převést soubor Excel do jiného formátu souborů pomocí 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)) )
Převod dokumentů do PDF přes Java
Open Source Documents4J knihovna obsahuje několik důležitých funkcí pro konverzi Microsoft kancelářských dokumentů, jako je Word, Excel a PowerPoint souborů do jiných formátů podpory, jako je PDF nebo obrázek atd. Následující příklad prokázal, jak snadno může softwarových programátorů načíst a převést soubor Microsoft Word Docx do souboru PDF s pouhým několika řádky kódu.
Převést Office Docx Soubor do PDF přes Java knihovna
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();
}
}