Guardar archivos Excel en formato CSV, PDF y otros formatos
Diferentes formas de guardar tus archivos
La API de Aspose.Cells proporciona una clase llamada Workbook que representa un archivo de Excel y proporciona todas las propiedades y métodos necesarios que los desarrolladores puedan necesitar para trabajar con sus archivos de Excel. La clase Workbook proporciona un método save que se utiliza para guardar archivos de Excel. El método save tiene muchas sobrecargas que se utilizan para guardar archivos de Excel de diferentes maneras.
Los desarrolladores también pueden especificar el formato de archivo en el que deben guardarse sus archivos. Los archivos se pueden guardar en varios formatos como XLS, SpreadsheetML, CSV, Delimitado por tabulaciones, Valores separados por tabulaciones TSV, XPS y muchos más. Estos formatos de archivo se especifican utilizando la enumeración SaveFormat.
La enumeración SaveFormat contiene muchos formatos de archivo predefinidos (que pueden ser elegidos por usted) de la siguiente manera:
Tipos de formato de archivo | Descripción |
---|---|
AUTO | La API intenta detectar el formato apropiado a partir de la extensión de archivo especificada en el primer parámetro del método de guardado. |
CSV | Representa un archivo CSV. |
XLSX | Representa un archivo de Office Open XML SpreadsheetML |
XLSM | Representa un archivo XLSM basado en XML |
XLTX | Representa un archivo de plantilla de Excel |
XLTM | Representa un archivo de plantilla habilitado para macros de Excel |
XLAM | Representa un archivo XLAM de Excel |
TSV | Representa un archivo de valores separados por tabulaciones |
TAB_DELIMITED | Representa un archivo de texto delimitado por tabulaciones |
HTML | Representa un archivo HTML |
M_HTML | Representa un archivo MHTML |
ODS | Representa un archivo de hoja de cálculo de OpenDocument |
EXCEL_97_TO_2003 | Representa un archivo XLS que es el formato predeterminado para las revisiones de Excel 1997 a 2003 |
SPREADSHEET_ML | Representa un archivo de SpreadSheetML |
XLSB | Representa un archivo XLSB binario de Excel 2007 |
UNKNOWN | Representa un formato no reconocido, no se puede guardar |
Representa un documento PDF | |
XPS | Representa un archivo de especificación de papel XML (XPS) |
TIFF | Representa un archivo TIFF (Tagged Image File Format) |
SVG | Representa un archivo SVG (Scalable Vector Graphics) basado en XML |
DIF | Representa un formato de intercambio de datos |
NUMBERS | Representa un archivo de números |
MARKDOWN | Representa un documento de markdown. |
Normalmente, hay dos formas de guardar archivos de Excel de la siguiente manera: |
- Guardar el archivo en alguna ubicación
- Guardar el archivo en un flujo (stream)
Guardar archivo en alguna ubicación
Si los desarrolladores necesitan guardar sus archivos en alguna ubicación de almacenamiento, pueden simplemente especificar el nombre del archivo (con su ruta de almacenamiento completa) y el formato de archivo deseado (usando la enumeración SaveFormat) al llamar al método save del objeto Workbook.
Ejemplo:
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SavingFiletoSomeLocation.class) + "loading_saving/"; | |
String filePath = dataDir + "Book1.xls"; | |
// Creating an Workbook object with an Excel file path | |
Workbook workbook = new Workbook(filePath); | |
// Save in Excel 97 – 2003 format | |
workbook.save(dataDir + "SFTSomeLocation_out.xls"); | |
// OR | |
// workbook.save(dataDir + ".output..xls", new | |
// XlsSaveOptions(SaveFormat.Excel97To2003)); | |
// Save in Excel2007 xlsx format | |
workbook.save(dataDir + "SFTSomeLocation_out.xlsx", FileFormatType.XLSX); | |
// Save in Excel2007 xlsb format | |
workbook.save(dataDir + "SFTSomeLocation_out.xlsb", FileFormatType.XLSB); | |
// Save in ODS format | |
workbook.save(dataDir + "SFTSomeLocation_out.ods", FileFormatType.ODS); | |
// Save in Pdf format | |
workbook.save(dataDir + "SFTSomeLocation_out.pdf", FileFormatType.PDF); | |
// Save in Html format | |
workbook.save(dataDir + "SFTSomeLocation_out.html", FileFormatType.HTML); | |
// Save in SpreadsheetML format | |
workbook.save(dataDir + "SFTSomeLocation_out.xml", FileFormatType.EXCEL_2003_XML); | |
// Print Message | |
System.out.println("Worksheets are saved successfully."); |
Guardar libro de trabajo en formato de texto o CSV
A veces, es posible que desee convertir o guardar un libro de trabajo con varias hojas de cálculo en formato de texto. Para formatos de texto (por ejemplo, TXT, TabDelim, CSV, etc.), tanto Microsoft Excel como Aspose.Cells guardan por defecto el contenido de la hoja de cálculo activa únicamente.
El siguiente ejemplo de código explica cómo guardar un libro de trabajo completo en formato de texto. Cargue el libro de trabajo fuente que podría ser cualquier archivo de hoja de cálculo de Microsoft Excel u OpenOffice (por ejemplo, XLS, XLSX, XLSM, XLSB, ODS, etc.) con cualquier número de hojas de trabajo.
Cuando el código se ejecuta, convierte los datos de todas las hojas en el libro de trabajo al formato TXT.
Puedes modificar el mismo ejemplo para guardar tu archivo en CSV. Por defecto, TxtSaveOptions.Separator es una coma, así que no especifiques un separador al guardar en formato CSV. Ten en cuenta: Si estás usando la versión de evaluación e incluso si el parámetro del método TxtSaveOptions.setExportAllSheets(boolean value) está configurado en true, el programa seguirá exportando solo una hoja de trabajo.
Ejemplo:
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SaveWorkbookToTextCSVFormat.class) + "loading_saving/"; | |
// Load your source workbook | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Text save options. You can use any type of separator | |
TxtSaveOptions opts = new TxtSaveOptions(); | |
opts.setSeparator('\t'); | |
opts.setExportAllSheets(true); | |
//Save entire workbook data into file | |
workbook.save(dataDir + "SWTTextCSVFormat-out.txt", opts); | |
// Print message | |
System.out.println("Excel to Text File Conversion performed successfully."); |
Guardar archivos de texto con separador personalizado
Los archivos de texto contienen datos de la hoja de cálculo sin formato. El archivo es un tipo de archivo de texto sin formato que puede tener algunos delimitadores personalizados entre sus datos.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SavingTextFilewithCustomSeparator.class) + "loading_saving/"; | |
// Creating an Workbook object with an Excel file path | |
Workbook workbook = new Workbook(dataDir + "Book1.xlsx"); | |
TxtSaveOptions toptions = new TxtSaveOptions(); | |
// Specify the separator | |
toptions.setSeparator(';'); | |
workbook.save(dataDir + "STFWCSeparator_out.csv"); | |
// Print Message | |
System.out.println("Worksheets are saved successfully."); |
Guardar archivo en un flujo (stream)
Si los desarrolladores necesitan guardar sus archivos en un Flujo (Stream), deberían crear un objeto FileOutputStream y luego guardar el archivo en ese objeto Flujo (Stream) llamando al método save del objeto Workbook. Los desarrolladores también pueden especificar el formato de archivo deseado (usando la enumeración SaveFormat) al llamar al método save.
Ejemplo:
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SavingFiletoStream.class) + "loading_saving/"; | |
// Creating an Workbook object with an Excel file path | |
Workbook workbook = new Workbook(dataDir + "Book1.xlsx"); | |
FileOutputStream stream = new FileOutputStream(dataDir + "SFToStream_out.xlsx"); | |
workbook.save(stream, FileFormatType.XLSX); | |
// Print Message | |
System.out.println("Worksheets are saved successfully."); | |
stream.close(); |
Guardar archivo en otro formato
Archivos XLS
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SaveXLSFile.class) + "loading_saving/"; | |
// Creating an Workbook object with an Excel file path | |
Workbook workbook = new Workbook(); | |
// Save in xls format | |
workbook.save(dataDir + "SXLSFile_out.xls", FileFormatType.EXCEL_97_TO_2003); | |
// Print Message | |
System.out.println("Worksheets are saved successfully."); |
Archivos XLSX
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SaveXLSXFile.class) + "loading_saving/"; | |
// Creating an Workbook object with an Excel file path | |
Workbook workbook = new Workbook(); | |
// Save in xlsx format | |
workbook.save(dataDir + "SXLSXFile_out.xlsx", FileFormatType.XLSX); | |
// Print Message | |
System.out.println("Worksheets are saved successfully."); |
Archivos PDF
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SaveInPdfFormat.class) + "loading_saving/"; | |
// Creating an Workbook object with an Excel file path | |
Workbook workbook = new Workbook(); | |
// Save in PDF format | |
workbook.save(dataDir + "SIPdfFormat_out.pdf", FileFormatType.PDF); | |
// Print Message | |
System.out.println("Worksheets are saved successfully."); |
Establecer la opción ContentCopyForAccessibility
Con la clase PdfSaveOptions, puedes obtener o establecer la opción de PDF AccessibilityExtractContent para controlar el acceso al contenido en el PDF convertido. Esto significa que permite que el software de lectura de pantalla utilice el texto dentro del archivo PDF para leerlo. Puedes desactivarlo aplicando una contraseña para cambiar permisos y deseleccionando los dos elementos en la captura de pantalla aquí.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Load excel file containing some data | |
Workbook workbook = new Workbook("book1.xlsx"); | |
// Create an instance of PdfSaveOptions and pass SaveFormat to the constructor | |
PdfSaveOptions pdfSaveOpt = new PdfSaveOptions(SaveFormat.PDF); | |
// Create an instance of PdfSecurityOptions | |
PdfSecurityOptions securityOptions = new PdfSecurityOptions(); | |
// Set AccessibilityExtractContent to true | |
securityOptions.setAccessibilityExtractContent(false); | |
// Set the securityoption in the PdfSaveOptions | |
pdfSaveOpt.setSecurityOptions(securityOptions); | |
// Save the workbook to PDF format while passing the object of PdfSaveOptions | |
workbook.save("outFile.pdf", pdfSaveOpt); |
Exportar Propiedades Personalizadas a PDF
Con la clase PdfSaveOptions, puedes exportar las propiedades personalizadas en la hoja de cálculo fuente al PDF. Se proporciona un enumerador PdfCustomPropertiesExport para especificar la forma en que se exportan las propiedades. Estas propiedades se pueden ver en Adobe Acrobat Reader haciendo clic en Archivo y luego en la opción de propiedades como se muestra en la siguiente imagen. El archivo de plantilla “sourceWithCustProps.xlsx” se puede descargar aquí para probarlo y el archivo PDF de salida “outSourceWithCustProps” está disponible aquí para el análisis.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Load excel file containing custom properties | |
Workbook workbook = new Workbook("sourceWithCustProps.xlsx"); | |
// Create an instance of PdfSaveOptions and pass SaveFormat to the constructor | |
PdfSaveOptions pdfSaveOpt = new PdfSaveOptions(SaveFormat.PDF); | |
// Set CustomPropertiesExport property to PdfCustomPropertiesExport.Standard | |
pdfSaveOpt.setCustomPropertiesExport(PdfCustomPropertiesExport.STANDARD); | |
// Save the workbook to PDF format while passing the object of PdfSaveOptions | |
workbook.save("outSourceWithCustProps.pdf", pdfSaveOpt); |
Convertir Libro de Excel a Markdown
La API de Aspose.Cells brinda soporte para exportar hojas de cálculo al formato Markdown. Para exportar la hoja de cálculo activa a Markdown, pasa SaveFormat.Markdown como segundo parámetro del método Workbook.Save. También puedes usar la clase MarkdownSaveOptions para especificar configuraciones adicionales para exportar la hoja de cálculo a Markdown.
El siguiente ejemplo de código muestra cómo exportar la hoja de cálculo activa a Markdown utilizando el miembro de enumeración SaveFormat.Markdown. Consulta el archivo de Markdown de salida generado por el código como referencia.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(ConvertExcelFileToMarkdown.class) + "LoadingSavingConvertingAndManaging/"; | |
Workbook workbook = new Workbook(dataDir + "Book1.xls"); | |
// Save as Markdown | |
workbook.save(dataDir + "Book1.md", SaveFormat.MARKDOWN); |