Android 怎么将sqlite中数据 导出成excel 放在sd 卡

赵梓颀 2013-11-11 03:03:47
我是个初学者 哪位大侠可以给一份简单的源码 单击某个按钮如“导出数据” 就可以
1,让用户选择导出位置
2,将SQLite中的数据读出来生成excel文件,写在刚才用户选择的位置
最好能用POI解决
...全文
1676 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq838256018 2014-04-21
  • 打赏
  • 举报
回复
导出CSV,引用C#行吗?我这有一个帮助类,直接传入参数就行,我是在C#里用一个SaveFlieDialog获得路径,然后将表和路径传入,调用类中的方法如下:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Data;

namespace Utility
{
    public class CSVHelper
    {
        //导出为svc文件,strFileName为要导出的csv格式文件的路径和文件名:比如,"d:\test\test.csv"
        public void ExportToSvc(System.Data.DataTable dt, string strFileName)
        {
            string strPath = strFileName;
            if (File.Exists(strPath))
            {
                File.Delete(strPath);
            }
            //先打印标头
            StringBuilder strColu = new StringBuilder();
            StringBuilder strValue = new StringBuilder();
            int i = 0;
            try
            {
                StreamWriter sw = new StreamWriter(new FileStream(strPath, FileMode.CreateNew), Encoding.GetEncoding("GB2312"));

                for (i = 0; i <= dt.Columns.Count - 1; i++)
                {
                    strColu.Append(dt.Columns[i].ColumnName);
                    strColu.Append(",");
                }
                strColu.Remove(strColu.Length - 1, 1);//移出掉最后一个,字符

                sw.WriteLine(strColu);

                foreach (DataRow dr in dt.Rows)
                {
                    strValue.Remove(0, strValue.Length);//移出

                    for (i = 0; i <= dt.Columns.Count - 1; i++)
                    {
                        strValue.Append(dr[i].ToString());
                        strValue.Append(",");
                    }
                    strValue.Remove(strValue.Length - 1, 1);//移出掉最后一个,字符
                    sw.WriteLine(strValue);
                }

                sw.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            System.Diagnostics.Process.Start(strPath);
        }
    }
}
你实例化这个类用下行么
赵梓颀 2013-11-20
  • 打赏
  • 举报
回复
引用 楼主 qinghegu689 的回复:
我是个初学者 哪位大侠可以给一份简单的源码 单击某个按钮如“导出数据” 就可以 1,让用户选择导出位置 2,将SQLite中的数据读出来生成excel文件,写在刚才用户选择的位置 最好能用POI解决
public void datatrans_DataOut() throws IOException {// export data String sql = " select * from " + TaskfieldEntry.TNAME; String[] selectionArgs = null; TaskfieldDAO taskfieldDAO = new TaskfieldDAO(DataTransActivity.this); List<TaskfieldBean> taskBeanlist = taskfieldDAO.queryBySQL(sql, selectionArgs); File fileNameFile = getExportFile(); if (fileNameFile != null) { FileOutputStream f = new FileOutputStream(fileNameFile); // 新建工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet workSheet = workbook .createSheet(TaskfieldEntry.CNAME_V_MEMO); // 生成表头 HSSFRow fieldRow = workSheet.createRow(0); fieldRow.createCell(0).setCellValue( /* TaskfieldEntry.CNAME_V_FID */"任务编号"); fieldRow.createCell(1).setCellValue( /* TaskfieldEntry.CNAME_V_MEMO */"任务标题"); // 表内容 for (int i = 0; i < taskBeanlist.size(); i++) { TaskfieldBean t = taskBeanlist.get(i); HSSFRow row = workSheet.createRow(i + 1); row.createCell(0).setCellValue(t.getF_id()); row.createCell(1).setCellValue(t.getMemo()); } workbook.write(f); f.close(); Toast.makeText(this, "提示:导出成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "export failed,create file failed in sdcard", Toast.LENGTH_SHORT).show(); } }
赵梓颀 2013-11-12
  • 打赏
  • 举报
回复
引用 6 楼 BCBPLC 的回复:
我用C++做导出XLS功能就是这么做的,很简单。
Java的会不会
赵梓颀 2013-11-12
  • 打赏
  • 举报
回复
引用 4 楼 lieri111 的回复:
首先把数据取出,其次自己用java生成一个excel 把数据写进去,这样比较灵活
给个demo瞧瞧
BCBPLC 2013-11-11
  • 打赏
  • 举报
回复
我用C++做导出XLS功能就是这么做的,很简单。
BCBPLC 2013-11-11
  • 打赏
  • 举报
回复
从数据库里生成纯文本文件很简单,文本用GBK码制, 这列与列之间用 0x9即TAB分隔,行与行用\n, 文件类型用.XLS,就是最简单的电子表格格式了。
passself 2013-11-11
  • 打赏
  • 举报
回复
首先把数据取出,其次自己用java生成一个excel 把数据写进去,这样比较灵活
赵梓颀 2013-11-11
  • 打赏
  • 举报
回复
引用 2 楼 Enter_yl 的回复:
帮你顶一下,建议写成豆号分隔符存为CVR文件,就可以用EXCEL表格打开了。
大哥,是CVS吧
银离子软件 2013-11-11
  • 打赏
  • 举报
回复
帮你顶一下,建议写成豆号分隔符存为CVR文件,就可以用EXCEL表格打开了。
罗小辉 2013-11-11
  • 打赏
  • 举报
回复
帮你顶一下

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧