Apertura de archivos con diferentes formatos

Formas sencillas de abrir archivos de Excel

Apertura a través de la Ruta

Para abrir un archivo de Microsoft Excel utilizando la ruta del archivo, pase la ruta del archivo como parámetro al crear la instancia de la clase Workbook. El siguiente código de ejemplo demuestra la apertura de 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 un flujo

A veces, el archivo de Excel que desea abrir se almacena como un flujo. En ese caso, de manera similar a la apertura de un archivo utilizando la ruta del archivo, pase el flujo como parámetro al instanciar la clase Workbook. El siguiente código de ejemplo demuestra la apertura de un archivo de Excel utilizando un flujo.

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.");

Apertura de archivos de diferentes versiones de Microsoft Excel

El usuario puede usar la clase LoadOptions para especificar el formato del archivo de Excel utilizando la enumeración LoadFormat.

La enumeración LoadFormat contiene muchos formatos de archivo predefinidos, algunos de los cuales se muestran a continuación.

Tipos de formato Descripción
Csv Representa un archivo CSV
Excel97To2003 Representa un archivo de 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 una plantilla de Excel 2007/2010/2013/2016/2019 y Office 365 XLTX
Xltm Representa un archivo de Excel 2007/2010/2013/2016/2019 y Office 365 habilitado para macros XLTM
Xlsb Representa un archivo binario XLSB de Excel 2007/2010/2013/2016/2019 y Office 365
SpreadsheetML Representa un archivo de SpreadsheetML
Tsv Representa un archivo de valores separados por tabulaciones
TabDelimited Representa un archivo de texto delimitado por tabulaciones
Ods Representa un archivo ODS
Html Representa un archivo HTML
Mhtml Representa un archivo MHTML

Apertura de archivos de Microsoft Excel 95/5.0

Para abrir archivos de Microsoft Excel 95, instancie la instancia Workbook con la ruta o el flujo del archivo de plantilla. El archivo de muestra para probar el código se puede descargar desde el siguiente enlace:

Excel95_5.0.xls

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 de archivos de Microsoft Excel 97 o versiones posteriores XLS

Para abrir archivos XLS de Microsoft Excel XLS de las versiones 97 o posteriores, instancie la instancia Workbook con la ruta o el flujo del archivo de plantilla. O utilice el método LoadOptions y seleccione el valor EXCEL_97_TO_2003 en la enumeración LoadFormat.

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 de archivos XLSX de Microsoft Excel 2007 o versiones posteriores

Para abrir archivos XLSX de Microsoft Excel 2007 o versiones posteriores, instancie la instancia Workbook con la ruta o el flujo del archivo de plantilla. O utilice la clase LoadOptions y seleccione el valor XLSX en la enumeración LoadFormat.

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.");

Abriendo 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 tabuladores. Para abrir dichos archivos, los desarrolladores pueden usar la misma metodología que utilizan para abrir archivos de diferentes versiones de Microsoft Excel.

Abriendo Archivos de SpreadsheetML

Los archivos de SpreadsheetML son las representaciones XML de sus hojas de cálculo, incluyendo toda la información sobre la hoja de cálculo, como el formato, las fórmulas, etc. Desde Microsoft Excel XP, se añadió una opción de exportación XML a Microsoft Excel que exporta sus hojas de cálculo a archivos de SpreadsheetML.

Para abrir archivos de SpreadsheetML, use la clase LoadOptions y seleccione el valor SPREADSHEET_ML en la enumeración LoadFormat.

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.");

Abriendo 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 el carácter de coma y entrecomillados por el carácter de 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 la clase LoadOptions y seleccione el valor CSV, predefinido en la enumeración LoadFormat.

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.");

Abriendo Archivos CSV y reemplazando caracteres inválidos

En Excel, cuando se abre un archivo CSV con caracteres especiales, estos se reemplazan automáticamente. Lo mismo hace la API de Aspose.Cells, que se muestra en el ejemplo de código que se muestra 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!");

Apertura de archivos CSV utilizando un analizador preferido

No siempre es necesario utilizar la configuración de analizador predeterminada para abrir los archivos CSV. A veces, la importación de un archivo CSV no crea la salida esperada, como el formato de fecha no es el esperado o los campos vacíos se manejan de manera diferente. Con este fin, 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.  

Se pueden descargar los archivos fuente de muestra y los archivos de salida de las siguientes conexiones para probar esta función.

samplePreferredParser.csv

outputsamplePreferredParser.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 (delimitados por tabuladores)

Los archivos delimitados por tabuladores contienen datos de hojas de cálculo pero sin ningún formato. Los datos están organizados en filas y columnas, como tablas y hojas de cálculo. En resumen, un archivo delimitado por tabuladores es un tipo especial de archivo de texto sin formato con una pestaña entre cada columna en el texto.

Para abrir archivos delimitados por tabuladores, los desarrolladores deben usar la clase LoadOptions y seleccionar el valor TSV, predefinido en la enumeración LoadFormat.

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.");

Apertura de archivos de Excel encriptados

Sabemos que es posible crear archivos de Excel encriptados utilizando Microsoft Excel. Para abrir tales archivos encriptados, los desarrolladores deben llamar a un método LoadOptions 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 por 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 utiliza para los archivos de hojas de cálculo de OpenOffice.org Calc. Aspose.Cells puede leer archivos SXC como se muestra 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 muestra 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