Apertura de archivos con diferentes formatos
Los desarrolladores usan Aspose.Cells para abrir archivos para diferentes propósitos. Por ejemplo, abra un archivo para recuperar datos o use un archivo de hoja de cálculo de diseñador predefinido para acelerar su proceso de desarrollo. Aspose.Cells permite a los desarrolladores abrir diferentes tipos de archivos fuente. Estos archivos de origen pueden ser Microsoft informes de Excel, SpreadsheetML, valores separados por comas (CSV), archivos delimitados por tabuladores o valores separados por tabuladores (TSV). Este artículo analiza la apertura de estos diferentes archivos de origen utilizando Aspose.Cells.
Si necesita conocer todos los formatos de archivo admitidos, consulte las siguientes páginas: Formatos de archivo admitidos
Maneras simples de abrir archivos de Excel
Apertura a través de Camino
Para abrir un archivo de Excel Microsoft usando la ruta del archivo, pase la ruta del archivo como parámetro mientras crea la instancia del**Libro de trabajo**clase. El siguiente código de ejemplo muestra cómo abrir un archivo de Excel utilizando la ruta del archivo.
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(OpeningFilesThroughPath.class) + "files/"; | |
// Opening from path. | |
// Creating an Workbook object with an Excel file path | |
Workbook workbook1 = new Workbook(dataDir + "Book1.xlsx"); | |
// Print message | |
System.out.println("Workbook opened using path successfully."); |
Apertura a través de Stream
veces, el archivo de Excel que desea abrir se almacena como una secuencia. En ese caso, similar a abrir un archivo usando la ruta del archivo, pase la secuencia como un parámetro mientras crea una instancia del**Libro de trabajo** clase. El siguiente código de ejemplo muestra cómo abrir un archivo de Excel mediante stream.
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(OpeningFilesThroughStream.class) + "loading_saving/"; | |
// Opening workbook from stream | |
// Create a Stream object | |
FileInputStream fstream = new FileInputStream(dataDir + "Book2.xls"); | |
// Creating an Workbook object with the stream object | |
Workbook workbook2 = new Workbook(fstream); | |
fstream.close(); | |
// Print message | |
System.out.println("Workbook opened using stream successfully."); |
Abrir archivos de diferentes versiones de Excel Microsoft
El usuario puede utilizar el**Opciones de carga** clase para especificar el formato del archivo de Excel usando el**LoadFormat**enumeración.
Él**LoadFormat**La enumeración contiene muchos formatos de archivo predefinidos, algunos de los cuales se indican a continuación.
Tipos de formato | Descripción |
---|---|
CSV | Representa un archivo CSV |
Excel97To2003 | Representa un archivo Excel 97 - 2003 |
xlsx | Representa un archivo de Excel 2007/2010/2013/2016/2019 y Office 365 XLSX |
xlsm | Representa un archivo de Excel 2007/2010/2013/2016/2019 y Office 365 XLSM |
xltx | Representa un archivo de plantilla XLTX de Excel 2007/2010/2013/2016/2019 y Office 365 |
xltm | Representa un archivo XLTM habilitado para macros de Excel 2007/2010/2013/2016/2019 y Office 365 |
xlsb | Representa un archivo binario XLSB de Excel 2007/2010/2013/2016/2019 y Office 365 |
SpreadsheetML | Representa un archivo SpreadsheetML |
Tsv | Representa un archivo de valores separados por tabulaciones |
TabDelimited | Representa un archivo de texto delimitado por tabulaciones |
probabilidades | Representa un archivo ODS |
html | Representa un archivo HTML |
Mhtml | Representa un archivo MHTML |
Apertura de archivos Microsoft Excel 95/5.0
Para abrir archivos Microsoft Excel 95, cree una instancia del**Libro de trabajo**instancia con la ruta o secuencia del archivo de plantilla. El archivo de muestra para probar el código se puede descargar desde el siguiente enlace:
Ejemplo
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Opening Microsoft Excel 97 Files | |
// Creating an EXCEL_97_TO_2003 LoadOptions object | |
// Creating an Workbook object with excel 97 file path and the | |
// loadOptions object | |
new Workbook(srcDir + "Excel95_5.0.xls"); | |
Apertura Microsoft Excel 97 o versiones posteriores XLS Archivos
Para abrir archivos XLS de Microsoft Excel XLS 97 o versiones posteriores, cree una instancia del**Libro de trabajo**instancia con la ruta o secuencia del archivo de plantilla. O usa el**Opciones de carga** método y seleccione el**EXCEL_97_TO_2003** valor en el**LoadFormat**enumeración.
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(OpeningMicrosoftExcel972003Files.class) + "loading_saving/"; | |
// Opening Microsoft Excel 97 Files | |
// Createing and EXCEL_97_TO_2003 LoadOptions object | |
LoadOptions loadOptions1 = new LoadOptions(LoadFormat.EXCEL_97_TO_2003); | |
// Creating an Workbook object with excel 97 file path and the | |
// loadOptions object | |
Workbook workbook3 = new Workbook(dataDir + "Book_Excel97_2003.xls", loadOptions1); | |
// Print message | |
System.out.println("Excel 97 Workbook opened successfully."); |
Apertura Microsoft Excel 2007 o versiones posteriores XLSX Archivos
Para abrir archivos XLSX de Microsoft Excel 2007 o versiones posteriores, cree una instancia del**Libro de trabajo**instancia con la ruta o secuencia del archivo de plantilla. O usa el**Opciones de carga** clase y seleccione la**XLSX** valor en el**LoadFormat**enumeración.
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(OpeningMicrosoftExcel2007XlsxFiles.class) + "loading_saving/"; | |
// Opening Microsoft Excel 2007 XLSX Files. Createing and XLSX LoadOptions object | |
LoadOptions loadOptions2 = new LoadOptions(LoadFormat.XLSX); | |
// Creating an Workbook object with 2007 xlsx file path and the loadOptions object | |
Workbook workbook4 = new Workbook(dataDir + "Book_Excel2007.xlsx", loadOptions2); | |
// Print message | |
System.out.println("Excel 2007 Workbook opened successfully."); |
Apertura de archivos con diferentes formatos
Aspose.Cells permite a los desarrolladores abrir archivos de hojas de cálculo con diferentes formatos, como SpreadsheetML, CSV, archivos delimitados por tabulaciones. Para abrir dichos archivos, los desarrolladores pueden usar la misma metodología que usan para abrir archivos de diferentes versiones de Excel Microsoft.
Apertura de archivos SpreadsheetML
Los archivos SpreadsheetML son las representaciones XML de sus hojas de cálculo, incluida toda la información sobre la hoja de cálculo, como formato, fórmulas, etc. Desde Microsoft Excel XP, se agrega una opción de exportación XML a Microsoft Excel que exporta sus hojas de cálculo a archivos SpreadsheetML.
Para abrir archivos SpreadsheetML, use el**Opciones de carga** clase y seleccione la**[HOJA DE CALCULO_ML](https://reference.aspose.com/cells/java/com.aspose.cells/loadformat#HOJA DE CALCULO_ML)** valor en el**LoadFormat**enumeración.
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(OpeningSpreadsheetMLFiles.class) + "loading_saving/"; | |
// Opening SpreadsheetML Files | |
// Creating and EXCEL_2003_XML LoadOptions object | |
LoadOptions loadOptions3 = new LoadOptions(LoadFormat.SPREADSHEET_ML); | |
// Creating an Workbook object with SpreadsheetML file path and the | |
// loadOptions object | |
Workbook workbook5 = new Workbook(dataDir + "Book3.xml", loadOptions3); | |
// Print message | |
System.out.println("SpreadSheetML format workbook has been opened successfully."); |
Apertura de archivos CSV
Los archivos de valores separados por comas (CSV) contienen registros cuyos valores están delimitados o separados por comas. En los archivos CSV, los datos se almacenan en un formato tabular que tiene campos separados por comas y entre comillas dobles. Si el valor de un campo contiene un carácter de comillas dobles, se escapa con un par de caracteres de comillas dobles. También puede usar Microsoft Excel para exportar los datos de su hoja de cálculo a un archivo CSV.
Para abrir archivos CSV, use el**Opciones de carga** clase y seleccione la**CSV** valor, predefinido en el**LoadFormat**enumeración.
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(OpeningCSVFiles.class) + "loading_saving/"; | |
// Opening CSV Files | |
// Creating and CSV LoadOptions object | |
LoadOptions loadOptions4 = new LoadOptions(LoadFormat.CSV); | |
// Creating an Workbook object with CSV file path and the loadOptions | |
// object | |
Workbook workbook6 = new Workbook(dataDir + "Book_CSV.csv", loadOptions4); | |
// Print message | |
System.out.println("CSV format workbook has been opened successfully."); |
Abrir archivos CSV y reemplazar caracteres no válidos
En Excel, cuando se abre el archivo CSV con caracteres especiales, los caracteres se reemplazan automáticamente. Lo mismo hace Aspose.Cells API, que se demuestra en el ejemplo de código que se proporciona a continuación.
Ejemplo
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Source directory | |
String dataDir = Utils.getSharedDataDir(OpeningCSVFilesAndReplacingInvalidCharacters.class) + "LoadingSavingConvertingAndManaging/"; | |
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV); | |
//Load CSV file | |
Workbook workbook = new Workbook(dataDir + "[20180220142533][ASPOSE_CELLS_TEST].csv", loadOptions); | |
System.out.println(workbook.getWorksheets().get(0).getName()); // (20180220142533)(ASPOSE_CELLS_T | |
System.out.println(workbook.getWorksheets().get(0).getName().length()); // 31 | |
System.out.println("CSV file opened successfully!"); |
Abriendo archivos CSV usando el analizador preferido
Esto no siempre es necesario para usar la configuración predeterminada del analizador para abrir los archivos CSV. A veces, la importación del archivo CSV no crea el resultado esperado, como que el formato de fecha no es el esperado o los campos vacíos se manejan de manera diferente. Para este propósito**TxtLoadOptions.PreferredParsers**está disponible para proporcionar su propio analizador preferido para analizar diferentes tipos de datos según el requisito. El siguiente código de ejemplo demuestra el uso del analizador preferido.
El archivo fuente de muestra y los archivos de salida se pueden descargar desde los siguientes enlaces para probar esta función.
muestra de salidaPreferredParser.xlsx
Ejemplo
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
class TextParser implements ICustomParser | |
{ | |
@Override | |
public Object parseObject(String s) { | |
return s; | |
} | |
@Override | |
public String getFormat() { | |
return ""; | |
} | |
} | |
class DateParser implements ICustomParser { | |
@Override | |
public Object parseObject(String s) { | |
Date myDate = null; | |
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); | |
try { | |
myDate = formatter.parse(s); | |
} catch (ParseException e) { | |
e.printStackTrace(); | |
} | |
return myDate; | |
} | |
@Override | |
public String getFormat() { | |
return "dd/MM/yyyy"; | |
} | |
} | |
public class OpeningCSVFilesWithPreferredParser { | |
//Source directory | |
private static String sourceDir = Utils.Get_SourceDirectory(); | |
private static String outputDir = Utils.Get_OutputDirectory(); | |
public static void main(String[] args) throws Exception { | |
// Initialize Text File's Load options | |
TxtLoadOptions oTxtLoadOptions = new TxtLoadOptions(LoadFormat.CSV); | |
// Specify the separatot character | |
oTxtLoadOptions.setSeparator(','); | |
// Specify the encoding scheme | |
oTxtLoadOptions.setEncoding(Encoding.getUTF8()); | |
// Set the flag to true for converting datetime data | |
oTxtLoadOptions.setConvertDateTimeData(true); | |
// Set the preferred parsers | |
oTxtLoadOptions.setPreferredParsers(new ICustomParser[] { new TextParser(), new DateParser() }); | |
// Initialize the workbook object by passing CSV file and text load options | |
Workbook oExcelWorkBook = new Workbook(sourceDir + "samplePreferredParser.csv", oTxtLoadOptions); | |
// Get the first cell | |
Cell oCell = oExcelWorkBook.getWorksheets().get(0).getCells().get("A1"); | |
// Display type of value | |
System.out.println("A1: " + getCellType(oCell.getType()) + " - " + oCell.getDisplayStringValue()); | |
// Get the second cell | |
oCell = oExcelWorkBook.getWorksheets().get(0).getCells().get("B1"); | |
// Display type of value | |
System.out.println("B1: " + getCellType(oCell.getType()) + " - " + oCell.getDisplayStringValue()); | |
// Save the workbook to disc | |
oExcelWorkBook.save(outputDir + "outputsamplePreferredParser.xlsx"); | |
System.out.println("OpeningCSVFilesWithPreferredParser executed successfully.\r\n"); | |
} | |
private static String getCellType(int type){ | |
if(type == CellValueType.IS_STRING){ | |
return "String"; | |
} else if(type == CellValueType.IS_NUMERIC){ | |
return "Numeric"; | |
} else if(type == CellValueType.IS_BOOL){ | |
return "Bool"; | |
} else if(type == CellValueType.IS_DATE_TIME){ | |
return "Date"; | |
} else if(type == CellValueType.IS_NULL){ | |
return "Null"; | |
} else if(type == CellValueType.IS_ERROR){ | |
return "Error"; | |
} else{ | |
return "Unknown"; | |
} | |
} |
Apertura de archivos TSV (separados por tabuladores)
Los archivos delimitados por tabuladores contienen datos de hojas de cálculo pero sin ningún formato. Los datos se organizan en filas y columnas, como tablas y hojas de cálculo. En resumen, un archivo delimitado por tabulaciones es un tipo especial de archivo de texto sin formato con una tabulación entre cada columna del texto.
Para abrir archivos delimitados por tabuladores, los desarrolladores deben usar el**Opciones de carga** clase y seleccione la**TSV** valor, predefinido en el**LoadFormat**enumeración.
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(OpeningTabDelimitedFiles.class) + "loading_saving/"; | |
// Creating and TAB_DELIMITED LoadOptions object | |
LoadOptions loadOptions5 = new LoadOptions(LoadFormat.TSV); | |
// Creating an Workbook object with Tab Delimited text file path and the | |
// loadOptions object | |
Workbook workbook7 = new Workbook(dataDir + "Book1TabDelimited.txt", loadOptions5); | |
// Print message | |
System.out.println("Tab Delimited workbook has been opened successfully."); |
Abrir archivos de Excel cifrados
Sabemos que es posible crear archivos de Excel cifrados utilizando Microsoft Excel. Para abrir dichos archivos cifrados, los desarrolladores deben llamar a un método LoadOptions especial sobrecargado y seleccionar el valor DEFAULT, predefinido en la enumeración FileFormatType. Este método también tomaría la contraseña del archivo encriptado como se muestra a continuación en el ejemplo.
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(OpeningEncryptedExcelFiles.class) + "loading_saving/"; | |
// Opening Encrypted Excel Files | |
// Creating and EXCEL_97_TO_2003 LoadOptions object | |
LoadOptions loadOptions6 = new LoadOptions(LoadFormat.EXCEL_97_TO_2003); | |
// Setting the password for the encrypted Excel file | |
loadOptions6.setPassword("1234"); | |
// Creating an Workbook object with file path and the loadOptions object | |
Workbook workbook8 = new Workbook(dataDir + "encryptedBook.xls", loadOptions6); | |
// Print message | |
System.out.println("Encrypted workbook has been opened successfully."); |
Aspose.Cells también admite la apertura de archivos de MS Excel 2013 protegidos con contraseña.
Apertura de archivos SXC
StarOffice Calc es similar a Microsoft Excel y admite fórmulas, gráficos, funciones y macros. Las hojas de cálculo creadas con este software se guardan con la extensión SXC. El archivo SXC también se usa para los archivos de hoja de cálculo de OpenOffice.org Calc. Aspose.Cells puede leer archivos SXC como se demuestra en el siguiente ejemplo de código.
Ejemplo
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the source directory. | |
String sourceDir = Utils.Get_SourceDirectory(); | |
// Instantiate LoadOptions specified by the LoadFormat. | |
LoadOptions loadOptions = new LoadOptions(LoadFormat.SXC); | |
// Create a Workbook object and opening the file from its path | |
Workbook workbook = new Workbook(sourceDir + "SampleSXC.sxc", loadOptions); | |
// Using the Sheet 1 in Workbook | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Accessing a cell using its name | |
Cell cell = worksheet.getCells().get("C3"); | |
System.out.println("Cell Name: " + cell.getName() + " Value: " + cell.getStringValue()); |
Apertura de archivos FODS
El archivo FODS es una hoja de cálculo guardada en OpenDocument XML sin compresión. Aspose.Cells puede leer archivos FODS como se demuestra en el siguiente ejemplo de código.
Ejemplo
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the source directory. | |
String sourceDir = Utils.Get_SourceDirectory(); | |
// Instantiate LoadOptions specified by the LoadFormat. | |
LoadOptions loadOptions = new LoadOptions(LoadFormat.FODS); | |
// Create a Workbook object and opening the file from its path | |
Workbook workbook = new Workbook(sourceDir + "SampleFods.fods", loadOptions); | |
// Print message | |
System.out.println("FODS file opened successfully!"); |
Temas avanzados
- Filtrar nombres definidos al cargar el libro de trabajo
- Filtrar objetos al cargar el libro de trabajo o la hoja de trabajo
- Recibe advertencias al cargar un archivo de Excel
- Mantenga separadores para filas en blanco al exportar hojas de cálculo al formato CSV
- Cargar libro de trabajo con el tamaño de papel de impresora especificado
- Apertura de diferentes archivos de versiones de Excel Microsoft
- Optimización del uso de la memoria mientras se trabaja con archivos grandes que tienen grandes conjuntos de datos
- Lea la hoja de cálculo Numbers desarrollada por Apple Inc. usando Aspose.Cells
- Lectura del archivo CSV con múltiples codificaciones
- Detenga la conversión o la carga con InterruptMonitor cuando tarde demasiado
- Usando LightCells API