Доступ к файлу Excel из внутреннего хранилища Android-приложения

Я хочу иметь возможность копировать файл Excel из папки res \ raw моего приложения Android во внутреннее хранилище клиентского телефона и иметь возможность извлекать данные из файла Excel и обновлять файл Excel во внутреннем хранилище по мере необходимости. Пока все, что у меня есть, это:

http://developer.android.com/guide/topics/data/data-storage.html#filesInternal --- записывать файлы во внутреннее хранилище и

http://www.vogella.com/articles/JavaExcel/article.html --- использование jexcel для извлечения данных и редактирования файла Excel

Кажется, я не могу связать их. Как мне продолжить реализацию этого приложения?

Спасибо


person Ahmed Zafar    schedule 16.08.2013    source источник
comment
Мне действительно нужна помощь здесь, ребята   -  person Ahmed Zafar    schedule 16.08.2013


Ответы (1)


Для чтения и записи. Для использования библиотеки Apache POI

В некотором образце примера есть для Android через чтение и запись листа Excel

1) Создание / чтение файла Excel в Android

2) Android Чтение Запись файла EXCEL с использованием Apache POI < / а>

Для ресурсов на SD-карту перейдите по этой ссылке или используйте этот код.

    package com.paresh.copyfileassetstoAssets;

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;

    import android.app.Activity;
    import android.content.res.AssetManager;
    import android.os.Bundle;
    import android.os.Environment;
    import android.util.Log;

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

           CopyAssets();
        }

        private void CopyAssets() {
            AssetManager assetManager = getAssets();
            String[] files = null;
            try {
                files = assetManager.list("Files");
            } catch (IOException e) {
                Log.e("tag", e.getMessage());
            }

            for(String filename : files) {
                System.out.println("File name => "+filename);
                InputStream in = null;
                OutputStream out = null;
                try {
                  in = assetManager.open("Files/"+filename);   // if files resides inside the "Files" directory itself
                  out = new FileOutputStream(Environment.getExternalStorageDirectory().toString() +"/" + filename);
                  copyFile(in, out);
                  in.close();
                  in = null;
                  out.flush();
                  out.close();
                  out = null;
                } catch(Exception e) {
                    Log.e("tag", e.getMessage());
                }
            }
        }
        private void copyFile(InputStream in, OutputStream out) throws IOException {
            byte[] buffer = new byte[1024];
            int read;
            while((read = in.read(buffer)) != -1){
              out.write(buffer, 0, read);
            }
        }
    }
person Amit Prajapati    schedule 16.08.2013
comment
Спасибо за помощь, но у меня другая проблема. Несмотря на то, что теперь я сохранил файл Excel во внутреннем хранилище, мне нужно получить данные из файла Excel. Я только сейчас знаю, как читать файл во внутреннем хранилище, как получать из него данные с помощью библиотеки Apache POI. Нужна помощь. Спасибо. - person Ahmed Zafar; 16.08.2013
comment
Хотя я предпочитаю внутреннюю память, а не внешнюю, этот ответ очень помог! Спасибо! - person Ahmed Zafar; 16.08.2013