EN · DE · RU · FR · ES

#387: ExcelImport.java

projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java Clase Java, projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java 353 líneas · 203 código · 126 comentarios · 24 en blanco
Propósito: Archivo fuente: projectforge/business/excel/ExcelImport.java. ExcelImport.java es parte de la aplicación de gestión de proyectos de código abierto ProjectForge.

Fuente (primeras 100 líneas)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge tiene doble licencia.
//
// Esta edición comunitaria es software libre; puedes redistribuirla y/o
// modificarla bajo los términos de la Licencia Pública General GNU según lo publicado
// por la Free Software Foundation; versión 3 de la Licencia.
//
// Esta edición comunitaria se distribuye con la esperanza de que sea útil,
// pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
// COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia General
// Pública de GNU para más detalles.
//
// Deberías haber recibido una copia de la Licencia Pública General GNU junto con
// este programa; si no, consulta http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.business.excel;

import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Array;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Convierte una hoja de Excel dada en un arreglo de objetos.
 *
 * @param <T> clase base para cada fila
 * @author Wolfgang Jung (w.jung@micromata.de)
 */
public class ExcelImport<T>
{
  /**
   * El registrador
   */
  private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ExcelImport.class);

  /**
   * el libro de trabajo que contiene los valores.
   */
  private final HSSFWorkbook work;

  /**
   * un mapa opcional para mapear nombres de columna a nombres de propiedad.
   */
  private Map<String, String> columnToPropertyMap;

  /**
   * la hoja de trabajo de la cual se deben leer los valores.
   */
  private int activeSheet = 0;

  /**
   * el índice basado en cero con los nombres de columna
   */
  private int columnNameRow = 0;

  /**
   * el índice basado en cero de la primera fila que contiene valores
   */
  private int startAtRow = 1;

  /**
   * la fábrica de clases para crear los objetos.
   */
  private ClassFactory<T> clazzFactory;

  /**
   * Abre un documento de Excel dado. El flujo siempre se cierra.
   *
   * @param xlsStream el flujo del documento de Excel.
   * @throws IOException si el documento no es legible
   */
  public ExcelImport(final InputStream xlsStream) throws IOException
  {
    // Cerrado por HSSFWorkbook
    work = new HSSFWorkbook(xlsStream);
  }

  /**
   * obtiene una referencia al libro de trabajo para características especiales.

Historial Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024 -> 2025.
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.
c06db1dab Casi todos los jars actualizados (se requieren cambios de código).

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
index e3598d29b..dbb1c0d48 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge tiene doble licencia.
 //

63081666f

Encabezados de archivos fuente: 2024 -> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
index 8a1c8f2d9..e3598d29b 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge tiene doble licencia.
 //

b6092df09

Copyright 2023 -> 2024
b6092df0927c4a3b161e888445f31dcab57493f2
diff --git a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
index 3189f78de..8a1c8f2d9 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge tiene doble licencia.
 //

ab45d51fa

Copyright 2001-2022 -> 2001-2023.
ab45d51fa419ede6174b31d69987f96d4b841ff9
diff --git a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
index 41f18bd64..3189f78de 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2022 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge tiene doble licencia.
 //

c06db1dab

Casi todos los jars actualizados (se requieren cambios de código).
c06db1dab7a4f114f726cfa4ebcf3716bb1d321f
diff --git a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
index a0c4b4380..41f18bd64 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/excel/ExcelImport.java
@@ -325,7 +325,7 @@ public class ExcelImport<T>
     if (cell == null) {
       return null;
     }
-    switch (cell.getCellTypeEnum()) {
+    switch (cell.getCellType()) {
       case NUMERIC:
         log.debug("usando numérico");
         if (Date.class.isAssignableFrom(destClazz)) {