Библиотеки для работы с xls файлами

Ответить
Slavam21
Сообщения: 1
Зарегистрирован: 16 май 2015, 14:18

Библиотеки для работы с xls файлами

Сообщение Slavam21 » 16 май 2015, 14:24

Нашел библиотеку для работы с xls файлами - apache poi, проблема заключается в том, что библиотека\AS не видит xls файл...

Код: Выделить всё

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;


public class MainActivity extends Activity {


    private static final String TAG = "myLogs";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {
            //открываем файл
            Log.d(TAG, "create");
            Workbook wb = WorkbookFactory.create(getAssets().open("test.xls"));
            Log.d(TAG, "create1111");
            //перем первую страницу
            Sheet sheet = wb.getSheetAt(0);
            //читаем первое поле (отсчет полей идет с нуля) т.е. по сути читаем второе
            Row row = sheet.getRow(1);
            //читаем столбцы
            Cell name = row.getCell(0);
            Cell age = row.getCell(1);
            //отображаем текстовые данные + цифровые
            Log.d(TAG," " + name.getStringCellValue() + " " + age.getNumericCellValue());

        }
        catch(Exception ex) {
            Log.d(TAG, "Error");
        }
    }
}
для работы библиотек пришлось вписать исключение в build.gradle

Код: Выделить всё

packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
LogCat
  • 05-16 07:11:41.919 4242-4242/com.slavam.p_0121 W/ActivityThread﹕ Application com.slavam.p_0121 is waiting for the debugger on port 8100...
    05-16 07:11:41.939 4242-4242/com.slavam.p_0121 I/System.out﹕ Sending WAIT chunk
    05-16 07:11:42.079 4242-4248/com.slavam.p_0121 I/dalvikvm﹕ Debugger is active
    05-16 07:11:42.149 4242-4242/com.slavam.p_0121 I/System.out﹕ Debugger has connected
    05-16 07:11:42.149 4242-4242/com.slavam.p_0121 I/System.out﹕ waiting for debugger to settle...
    05-16 07:11:42.359 4242-4242/com.slavam.p_0121 I/System.out﹕ waiting for debugger to settle...
    05-16 07:11:42.569 4242-4242/com.slavam.p_0121 I/System.out﹕ waiting for debugger to settle...
    05-16 07:11:42.779 4242-4242/com.slavam.p_0121 I/System.out﹕ waiting for debugger to settle...
    05-16 07:11:42.989 4242-4242/com.slavam.p_0121 I/System.out﹕ waiting for debugger to settle...
    05-16 07:11:43.199 4242-4242/com.slavam.p_0121 I/System.out﹕ waiting for debugger to settle...
    05-16 07:11:43.409 4242-4242/com.slavam.p_0121 I/System.out﹕ waiting for debugger to settle...
    05-16 07:11:43.619 4242-4242/com.slavam.p_0121 I/System.out﹕ waiting for debugger to settle...
    05-16 07:11:43.829 4242-4242/com.slavam.p_0121 I/System.out﹕ debugger has settled (1355)
    05-16 07:11:43.909 4242-4242/com.slavam.p_0121 D/myLogs﹕ create
    05-16 07:11:43.909 4242-4242/com.slavam.p_0121 D/myLogs﹕ Error
    05-16 07:11:44.029 4242-4242/com.slavam.p_0121 D/﹕ HostConnection::get() New Host Connection established 0xb89dbd80, tid 4242
    05-16 07:11:44.239 4242-4242/com.slavam.p_0121 W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-16 07:11:44.279 4242-4242/com.slavam.p_0121 D/OpenGLRenderer﹕ Enabling debug mode 0

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Библиотеки для работы с xls файлами

Сообщение doter.ua » 16 май 2015, 17:19

Попробуй поток передать. FileInputStream например.
UPD: я про конструктор Workbook wb = WorkbookFactory.create(...

FileInputStream in = new FileInputStream(filename);
Workbook wb = new HSSFWorkbook(in);
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Ответить