Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Microsoft Excel Workbook es un software basado en hojas de cálculo que permite a sus usuarios organizar y almacenar datos de forma eficaz. Almacena y organiza los datos en forma tabular, es decir, mediante filas y columnas. La celda de una hoja de cálculo Excel es el cuadro que contiene los datos y puede manipularse con diferentes estilos, formatos y fórmulas.
La lectura de un archivo Excel puede resultar complicada en ocasiones. La lectura de archivos Excel en Java también es un poco diferente a la lectura de archivos Word en Java debido a las celdas de Excel. El JDK no proporciona una API directa para leer o escribir documentos de Microsoft Excel. En su lugar, tenemos que confiar en la biblioteca de terceros Apache POI.
POI son las siglas de "Poor Obfuscation Implementation". Apache POI es una biblioteca Java de código abierto diseñada para leer y escribir documentos de Microsoft. Ofrece una forma de crear y manipular varios formatos de archivo basados en Microsoft Office. Usando Apache POI, uno debería ser capaz de realizar operaciones de creación, modificación y visualización/lectura en una gama de formatos de archivo de Microsoft Office.
Para empezar, descargaremos la última versión de los JARs POI. Vaya a http://poi.apache.org/download.html y descargue el último archivo ZIP, que contendrá la API Java para leer un archivo Excel en Java.
Cuando descargue el archivo ZIP, deberá descomprimirlo y añadir los siguientes archivos JAR al classpath de su proyecto. Esto se explica en Lectura desde un fichero Excel más abajo.
Nota: Copie también los archivos de lib y ooxml-lib junto con los demás archivos.
A continuación se indican las clases de archivos XLS y XLSX que pueden utilizarse:
La siguiente es una lista de diferentes interfaces Java y clases en POI para leer archivos XLS y XLSX en Java:
La interfaz Workbook está implementada por las clases HSSFWorkbook
y XSSFWorkbook
.
XSSFWorkbook: Es una representación de clase del fichero XLSX.
Las clases HSSFSheet
y XSSFSheet
implementan la interfaz Hoja.
XSSFSheet: Esta es una clase que representa una hoja en un archivo XLSX.
La interfaz Row está implementada por las clases HSSFRow
y XSSFRow
.
XSSFRow: Es una clase que representa una fila en la hoja de un fichero XLSX.
La interfaz Cell está implementada por las clases HSSFCell
y XSSFCell
.
Para nuestro ejemplo, leeremos el siguiente archivo Excel en Java:
Crea un proyecto Java usando cualquier IDE Java. Vamos a utilizar Netbeans para este proyecto.
A continuación, crea una carpeta lib en el proyecto.
A continuación, añada los archivos JAR descargados a la carpeta lib creada en el paso anterior.
Establezca la Class-Path
haciendo clic con el botón derecho en la carpeta Project > Build Path > Add External JARs files > seleccione todos los archivos JAR anteriores > Apply and close.
Ahora, vamos a crear un archivo de clase con el nombre ReadExcelFileDemo.
Cree un archivo Excel con el nombre "studentdata.xls" y escriba en él los datos anteriores o cualquier otro dato.
A continuación se muestra un ejemplo de código para leer archivos Excel en Java:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Row;
public class ReadExcelFileDemo {
public static void main(String args []) throws IOException {
//obtaining input bytes from a file
FileInputStream fis=new FileInputStream(new File("C:\\demo\\studentdata.xls"));
//creating workbook instance that refers to .xls file
HSSFWorkbook wb=new HSSFWorkbook(fis);
//creating a Sheet object to retrieve the object
HSSFSheet sheet=wb.getSheetAt(0);
//evaluating cell type
FormulaEvaluator formulaEvaluator=wb.getCreationHelper().createFormulaEvaluator();
for(Row row: sheet) {
for(Cell cell: row) {
switch(formulaEvaluator.evaluateInCell(cell).getCellType()) {
case Cell.CELL_TYPE_NUMERIC: //field that represents numeric cell type
//getting the value of the cell as a number
System.out.print(cell.getNumericCellValue()+ "\t\t");
break;
case Cell.CELL_TYPE_STRING: //field that represents string cell type
//getting the value of the cell as a string
System.out.print(cell.getStringCellValue()+ "\t\t");
break;
}
}
System.out.println();
}
}
}
Salida:
IdNames
1Zeeshan
2Shoaib
3Umar
4Rizwan
5Ahsan
Los pasos son los mismos para la lectura de archivos xlsx, a excepción de los dos puntos principales siguientes:
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class XLSXReaderExample {
public static void main(String [] args) {
try {
File file = new File("C:\\demo\\studentdata.xlsx");
FileInputStream fis = new FileInputStream(file);
//creating Workbook instance that refers to .xlsx file
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheetAt(0);
Iterator<Row> itr = sheet.iterator();
while (itr.hasNext()) {
Row row = itr.next();
Iterator<Cell> cellIterator = row.cellIterator(); //iterating over each column
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC: //field that represents numeric cell type
//getting the value of the cell as a number
System.out.print(cell.getNumericCellValue() + "\t\t");
break;
case Cell.CELL_TYPE_STRING: //field that represents string cell type
//getting the value of the cell as a string
System.out.print(cell.getStringCellValue() + "\t\t");
break;
}
}
System.out.println("");
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
Salida:
IdNames
1Zeeshan
2Shoaib
3Umar
4Rizwan
5Ahsan
IronXL es una biblioteca .NET independiente que facilita la lectura y edición de documentos de Microsoft Excel con C#. No requiere que Microsoft Excel esté instalado ni depende de Interop.
Con IronXL, los desarrolladores pueden realizar todos los cálculos relacionados con Excel sin esfuerzo, simplemente escribiendo unas pocas líneas de código y con un rápido rendimiento. Esto podría ser para tareas tales como sumar dos celdas, calcular el total general de una columna, agregar una columna completa a una tabla de Excel, agregar una fila completa a una tabla de Excel, sumas de columnas de una y varias filas, o muchas otras tareas que se facilitan a través de IronXL.funciones útiles.
IronXL es totalmente compatible con .NET Framework, .NET Core, Mobile, Xamarin, Azure Linux y MacOS.
System.Data
- trabaja con hojas de cálculo Excel como objetos System.Data.DataSet
y System.Data.DataTable
.Estilización: estilos visuales, fuente y tamaño de fuente, patrón de fondo, borde, alineación y formatos numéricos.
A continuación se muestra un ejemplo de código de la lectura de un archivo de Excel en C # usando IronXL:
using IronXL;
using System.Linq;
//Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();
//Select cells easily in Excel notation and return the calculated value
int cellValue = sheet ["A2"].IntValue;
// Read from Ranges of cells elegantly.
foreach (var cell in sheet ["A2:A10"]) {
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
using IronXL;
using System.Linq;
//Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();
//Select cells easily in Excel notation and return the calculated value
int cellValue = sheet ["A2"].IntValue;
// Read from Ranges of cells elegantly.
foreach (var cell in sheet ["A2:A10"]) {
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
Imports IronXL
Imports System.Linq
'Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
Private workbook As WorkBook = WorkBook.Load("test.xlsx")
Private sheet As WorkSheet = workbook.WorkSheets.First()
'Select cells easily in Excel notation and return the calculated value
Private cellValue As Integer = sheet ("A2").IntValue
' Read from Ranges of cells elegantly.
For Each cell In sheet ("A2:A10")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
Trabajar con IronXL facilita mucho el trabajo de los desarrolladores. Su código sencillo y fácil de usar hace que el software sea menos propenso a errores al trabajar con archivos Excel.
Descargar IronXL y utilícelo hoy mismo en sus proyectos.
9 productos API .NET para sus documentos de oficina