android apache poi error

13 浏览
0 Comments

android apache poi error

这是我用于生成数据库备份的代码,我使用了Apache POI,但在执行时出现了一些错误。

我从HSSF工作表开始,创建一个表格并从我的数据库中添加详细信息,然后将该文件保存在SD卡上的特定位置。

 HSSFWorkbook backup=new HSSFWorkbook();
    HSSFSheet sheet=backup.createSheet("Contact_Backup");
Map data = new HashMap();
            sq = md.getReadableDatabase();
            Cursor mCursor = sq.rawQuery("SELECT * FROM "
                    + MyDatabase.TABLE_NAME, null);
            if (mCursor.moveToFirst()) {
                do {
                    idbackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_ID)));
                    namebackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_NAME)));
                    numberbackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_NUM)));
                    addressbackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_ADDR)));
                    mailbackup.add(mCursor.getString(mCursor.getColumnIndex(MyDatabase.KEY_MAIL)));
                } while (mCursor.moveToNext());
            }
            if (idbackup.size() != 0) {
                int j = 2;
                for (int i = 0; i < idbackup.size(); i++) {
                    data.put(String.valueOf(j), new Object[]{idbackup.get(i), namebackup.get(i), numberbackup.get(i), addressbackup.get(i), mailbackup.get(i)});
                    j++;
                }
            }
            Set keyset = data.keySet();
            int rownum = 0;
            for (String key : keyset) {
                Row row = sheet.createRow(rownum++);
                Object[] objArr = data.get(key);
                int cellnum = 0;
                for (Object obj : objArr) {
                    Cell cell = row.createCell(cellnum++);
                    if (obj instanceof Date)
                        cell.setCellValue((Date) obj);
                    else if (obj instanceof Boolean)
                        cell.setCellValue((Boolean) obj);
                    else if (obj instanceof String)
                        cell.setCellValue((String) obj);
                    else if (obj instanceof Double)
                        cell.setCellValue((Double) obj);
                }
            }
   try {
            File directory = new File("/sdcard/BulkMessenger/backups"); /*创建文件目录
            directory.mkdir();
            long date = System.currentTimeMillis();
            SimpleDateFormat sdf = new SimpleDateFormat("MMM MM dd, yyyy h:mm a");
            String dateString = sdf.format(date);
            File file = new File(directory, dateString+"backupcontact.xls");
            FileOutputStream out = new FileOutputStream(file);
            backup.write(out);
            out.close();
            Toast.makeText(getApplicationContext(),"备份成功生成在backup文件夹",Toast.LENGTH_LONG).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

下面是我的错误日志,其中包含了文件未找到异常。

07-08 09:52:38.250 15615-15615/com.example.web03.bulkmessenger E/dalvikvm: Could not find class 'java.awt.font.FontRenderContext', referenced from method org.apache.poi.hssf.usermodel.HSSFSheet.autoSizeColumn

提前感谢您的帮助!

0
0 Comments

问题描述:在使用Android Apache POI库时,出现了(android apache poi error)错误。

问题原因:与文件目录相关的问题引发了异常。

解决方法:感谢大家的建议。

以下是相关代码:

// 代码示例

希望通过上述解决方法解决(android apache poi error)问题。

0