Foros del Web » Programando para Internet » Android »

Importar excel

Estas en el tema de Importar excel en el foro de Android en Foros del Web. Buenas, estoy intentando cargar un excel en mi aplicación android. He estado buscando por internet pero no he encontrado mucha información relativa al tema. He ...
  #1 (permalink)  
Antiguo 09/05/2014, 00:42
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 8 meses
Puntos: 9
Importar excel

Buenas, estoy intentando cargar un excel en mi aplicación android. He estado buscando por internet pero no he encontrado mucha información relativa al tema. He probado el código que venia en una de las pocas páginas que encontré pero no me funciona correctamente. Para empezar en la primera condicional que hay ya me da error. Comentando esta condicional me salta una excepción con el fallo open failed: ENOENT (no such file or directory)
El código que tengo en la activity es el siguiente.
Código Java:
Ver original
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.util.Iterator;
  4. import org.apache.poi.hssf.usermodel.HSSFCell;
  5. import org.apache.poi.hssf.usermodel.HSSFRow;
  6. import org.apache.poi.hssf.usermodel.HSSFSheet;
  7. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  8. import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  9. import android.support.v7.app.ActionBarActivity;
  10. import android.util.Log;
  11. import android.widget.Button;
  12. import android.widget.EditText;
  13. import android.content.Context;
  14. import android.os.Bundle;
  15. import android.os.Environment;
  16.  
  17. public class Importar extends ActionBarActivity {
  18.  public static boolean isExternalStorageReadOnly() {
  19.         String extStorageState = Environment.getExternalStorageState();
  20.         if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState)) {
  21.             return true;
  22.         }
  23.         return false;
  24.     }
  25.  
  26.     public static boolean isExternalStorageAvailable() {
  27.         String extStorageState = Environment.getExternalStorageState();
  28.         if (Environment.MEDIA_MOUNTED.equals(extStorageState)) {
  29.             return true;
  30.         }
  31.         return false;
  32.     }
  33.     String archivo="preguntas.xls";
  34. private static void importarexcel(Context context, String archivo){
  35.     if(!isExternalStorageAvailable()||isExternalStorageReadOnly()){
  36.         Log.e("Error: ", "No se pueden leer archivos externos");
  37.         return;
  38.     }
  39.     try{
  40.         File file=new File(context.getExternalFilesDir(null), archivo);
  41.         FileInputStream myInput=new FileInputStream(file);
  42.         POIFSFileSystem myFileSystem=new POIFSFileSystem(myInput);
  43.         HSSFWorkbook myWorkBook=new HSSFWorkbook(myFileSystem);
  44.         HSSFSheet mySheet=myWorkBook.getSheetAt(0);
  45.         Iterator rowIter=mySheet.rowIterator();
  46.         while(rowIter.hasNext()){
  47.             HSSFRow myRow=(HSSFRow)rowIter.next();
  48.             Iterator cellIter=myRow.cellIterator();
  49.             while(cellIter.hasNext()){
  50.                 HSSFCell myCell=(HSSFCell)cellIter.next();
  51.                 Log.d("Dato:", "Valor: "+myCell.toString());
  52.             }
  53.         }
  54.     } catch(Exception e){
  55.         Log.e("Error: ", e.getMessage());
  56.     }
  57.     return;
  58. }
  59. @Override
  60. protected void onCreate(Bundle savedInstanceState) {
  61.     super.onCreate(savedInstanceState);
  62.     setContentView(R.layout.activity_importar);
  63.     importarexcel(getBaseContext(), archivo);
  64. }
  65. }
En el archivo AndroidManifest.xml tengo lo siguiente:
Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.examenes"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6.  
  7. <uses-sdk
  8.    android:minSdkVersion="8"
  9.    android:targetSdkVersion="19" />
  10. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  11. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  12. <application
  13.    android:allowBackup="true"
  14.    android:icon="@drawable/ic_launcher"
  15.    android:label="@string/app_name"
  16.    android:theme="@style/AppTheme" >
  17.     <activity
  18.        android:name="com.example.examenes.MainActivity"
  19.        android:label="@string/app_name" >
  20.         <intent-filter>
  21.             <action android:name="android.intent.action.MAIN" />
  22.  
  23.             <category android:name="android.intent.category.LAUNCHER" />
  24.         </intent-filter>
  25.     </activity>
  26.     <activity
  27.        android:name="com.example.examenes.Preguntas"
  28.        android:label="@string/title_activity_preguntas" >
  29.     </activity>
  30.     <activity
  31.        android:name="com.example.examenes.Asignaturas"
  32.        android:label="@string/title_activity_asignaturas" >
  33.     </activity>
  34.     <activity
  35.        android:name="com.example.examenes.Examen"
  36.        android:label="@string/title_activity_examen" >
  37.     </activity>
  38.     <activity
  39.        android:name="com.example.examenes.Examenes"
  40.        android:label="@string/title_activity_examenes" >
  41.     </activity>
  42.     <activity
  43.        android:name="com.example.examenes.Temas"
  44.        android:label="@string/title_activity_temas" >
  45.     </activity>
  46.     <activity
  47.        android:name="com.example.examenes.Importar"
  48.        android:label="@string/title_activity_importar" >
  49.     </activity>
  50. </application>
La lectura y escritura de la memoria externa está activa y el archivo que intento mostrar está en la memoria SD.
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe

Etiquetas: excel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:25.