日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

安卓mysql导出excel_Android开发实现的导出数据库到Excel表格功能【附源码下载】...

發布時間:2025/3/21 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓mysql导出excel_Android开发实现的导出数据库到Excel表格功能【附源码下载】... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了Android開發實現的導出數據庫到Excel表格功能。分享給大家供大家參考,具體如下:

之前一直在電腦上用Excel表格記錄家庭帳單,不久前重裝系統不小心干掉了,傷心了好久,那可是我記了五年的帳單呀!這段時間用的是隨手記,好用但是不太符合我的習慣,所以我自己寫了一個小小的帳單記錄APP,App小到只有一個Activity。當然更多的需求我正在研發中,呵呵!現在已經完成了把每天記錄的數據保存到Sqilte數據庫中,然后可以導出到excel表格。代碼也是借助網上的一些資料寫成的,代碼也比較容易,只需要用到一個jxl.jar包,感謝網友的幫助。

貼上主要代碼,再附上文件包:

MainActivity.java:

package com.ldm.familybill;

import java.io.File;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.content.ContentValues;

import android.database.Cursor;

import android.os.Bundle;

import android.os.Environment;

import android.text.TextUtils;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import com.ldm.db.DBHelper;

import com.ldm.excel.ExcelUtils;

@SuppressLint("SimpleDateFormat")

public class MainActivity extends Activity implements OnClickListener {

private EditText mFoodEdt;

private EditText mArticlesEdt;

private EditText mTrafficEdt;

private EditText mTravelEdt;

private EditText mClothesEdt;

private EditText mDoctorEdt;

private EditText mRenQingEdt;

private EditText mBabyEdt;

private EditText mLiveEdt;

private EditText mOtherEdt;

private EditText mRemarkEdt;

private Button mSaveBtn;

private File file;

private String[] title = { "日期", "食物支出", "日用品項", "交通話費", "旅游出行", "穿著支出", "醫療保健", "人情客往", "寶寶專項", "房租水電", "其它支出", "備注說明" };

private String[] saveData;

private DBHelper mDbHelper;

private ArrayList>bill2List;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViewsById();

mDbHelper = new DBHelper(this);

mDbHelper.open();

bill2List=new ArrayList>();

}

private void findViewsById() {

mFoodEdt = (EditText) findViewById(R.id.family_bill_food_edt);

mArticlesEdt = (EditText) findViewById(R.id.family_bill_articles_edt);

mTrafficEdt = (EditText) findViewById(R.id.family_bill_traffic_edt);

mTravelEdt = (EditText) findViewById(R.id.family_bill_travel_edt);

mClothesEdt = (EditText) findViewById(R.id.family_bill_clothes_edt);

mDoctorEdt = (EditText) findViewById(R.id.family_bill_doctor_edt);

mRenQingEdt = (EditText) findViewById(R.id.family_bill_laiwang_edt);

mBabyEdt = (EditText) findViewById(R.id.family_bill_baby_edt);

mLiveEdt = (EditText) findViewById(R.id.family_bill_live_edt);

mOtherEdt = (EditText) findViewById(R.id.family_bill_other_edt);

mRemarkEdt = (EditText) findViewById(R.id.family_bill_remark_edt);

mSaveBtn = (Button) findViewById(R.id.family_bill_save);

mSaveBtn.setOnClickListener(this);

}

@Override

public void onClick(View v) {

if (v.getId() == R.id.family_bill_save) {

saveData = new String[] { new SimpleDateFormat("yyyy-MM-dd").format(new Date()), mFoodEdt.getText().toString().trim(), mArticlesEdt.getText().toString().trim(), mTrafficEdt.getText().toString().trim(), mTravelEdt.getText().toString().trim(), mClothesEdt.getText().toString().trim(), mDoctorEdt.getText().toString().trim(), mRenQingEdt.getText().toString().trim(), mBabyEdt.getText().toString().trim(), mLiveEdt.getText().toString().trim(), mOtherEdt.getText().toString().trim(), mRemarkEdt.getText().toString().trim() };

if (canSave(saveData)) {

ContentValues values = new ContentValues();

values.put("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()));

values.put("food", mFoodEdt.getText().toString());

values.put("use", mArticlesEdt.getText().toString());

values.put("traffic", mTrafficEdt.getText().toString());

values.put("travel", mTravelEdt.getText().toString());

values.put("clothes", mClothesEdt.getText().toString());

values.put("doctor", mDoctorEdt.getText().toString());

values.put("laiwang", mRenQingEdt.getText().toString());

values.put("baby", mBabyEdt.getText().toString());

values.put("live", mLiveEdt.getText().toString());

values.put("other", mOtherEdt.getText().toString());

values.put("remark", mRemarkEdt.getText().toString());

long insert = mDbHelper.insert("family_bill", values);

if (insert > 0) {

initData();

}

}

else {

Toast.makeText(this, "請填寫任意一項內容", Toast.LENGTH_SHORT).show();

}

}

}

@SuppressLint("SimpleDateFormat")

public void initData() {

file = new File(getSDPath() + "/Family");

makeDir(file);

ExcelUtils.initExcel(file.toString() + "/bill.xls", title);

ExcelUtils.writeObjListToExcel(getBillData(), getSDPath() + "/Family/bill.xls", this);

}

private ArrayList> getBillData() {

Cursor mCrusor = mDbHelper.exeSql("select * from family_bill");

while (mCrusor.moveToNext()) {

ArrayList beanList=new ArrayList();

beanList.add(mCrusor.getString(1));

beanList.add(mCrusor.getString(2));

beanList.add(mCrusor.getString(3));

beanList.add(mCrusor.getString(4));

beanList.add(mCrusor.getString(5));

beanList.add(mCrusor.getString(6));

beanList.add(mCrusor.getString(7));

beanList.add(mCrusor.getString(8));

beanList.add(mCrusor.getString(9));

beanList.add(mCrusor.getString(10));

beanList.add(mCrusor.getString(11));

beanList.add(mCrusor.getString(12));

bill2List.add(beanList);

}

mCrusor.close();

return bill2List;

}

public static void makeDir(File dir) {

if (!dir.getParentFile().exists()) {

makeDir(dir.getParentFile());

}

dir.mkdir();

}

public String getSDPath() {

File sdDir = null;

boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);

if (sdCardExist) {

sdDir = Environment.getExternalStorageDirectory();

}

String dir = sdDir.toString();

return dir;

}

private boolean canSave(String[] data) {

boolean isOk = false;

for (int i = 0; i < data.length; i++) {

if (i > 0 && i < data.length) {

if (!TextUtils.isEmpty(data[i])) {

isOk = true;

}

}

}

return isOk;

}

}

CreateExcel.java:

package com.ldm.excel;

import java.io.File;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import android.os.Environment;

public class CreateExcel {

// 準備設置excel工作表的標題

private WritableSheet sheet;

/**創建Excel工作薄*/

private WritableWorkbook wwb;

private String[] title = { "日期", "食物支出", "日用品項", "交通話費", "旅游出行", "穿著支出", "醫療保健", "人情客往", "寶寶專項", "房租水電", "其它支出", "備注說明" };

public CreateExcel() {

excelCreate();

}

public void excelCreate() {

try {

/**輸出的excel文件的路徑*/

String filePath = Environment.getExternalStorageDirectory() + "/family_bill";

File file = new File(filePath, "bill.xls");

if (!file.exists()) {

file.createNewFile();

}

wwb = Workbook.createWorkbook(file);

/**添加第一個工作表并設置第一個Sheet的名字*/

sheet = wwb.createSheet("家庭帳務表", 0);

}

catch (Exception e) {

e.printStackTrace();

}

}

public void saveDataToExcel(int index, String[] content) throws Exception {

Label label;

for (int i = 0; i < title.length; i++) {

/**Label(x,y,z)其中x代表單元格的第x+1列,第y+1行, 單元格的內容是y

* 在Label對象的子對象中指明單元格的位置和內容

* */

label = new Label(i, 0, title[i]);

/**將定義好的單元格添加到工作表中*/

sheet.addCell(label);

}

/*

* 把數據填充到單元格中

* 需要使用jxl.write.Number

* 路徑必須使用其完整路徑,否則會出現錯誤

*/

for (int i = 0; i < title.length; i++) {

Label labeli = new Label(i, index, content[i]);

sheet.addCell(labeli);

}

// 寫入數據

wwb.write();

// 關閉文件

wwb.close();

}

}

DBHelper.java:

package com.ldm.db;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper {

public static final String DB_NAME = "ldm_family"; // DB name

private Context mcontext;

private DBHelper mDbHelper;

private SQLiteDatabase db;

public DBHelper(Context context) {

super(context, DB_NAME, null, 11);

this.mcontext = context;

}

public DBHelper(Context context, String name, CursorFactory factory, int version) {

super(context, name, factory, version);

}

/**

* 用戶第一次使用軟件時調用的操作,用于獲取數據庫創建語句(SW),然后創建數據庫

*/

@Override

public void onCreate(SQLiteDatabase db) {

String sql = "create table if not exists family_bill(id integer primary key,time text,food text,use text,traffic text,travel text,clothes text,doctor text,laiwang text,baby text,live text,other text,remark text)";

db.execSQL(sql);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

/* 打開數據庫,如果已經打開就使用,否則創建 */

public DBHelper open() {

if (null == mDbHelper) {

mDbHelper = new DBHelper(mcontext);

}

db = mDbHelper.getWritableDatabase();

return this;

}

/* 關閉數據庫 */

public void close() {

db.close();

mDbHelper.close();

}

/**添加數據 */

public long insert(String tableName, ContentValues values) {

return db.insert(tableName, null, values);

}

/**查詢數據*/

public Cursor findList(String tableName, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) {

return db.query(tableName, columns, selection, selectionArgs, groupBy, having, orderBy, limit);

}

public Cursor exeSql(String sql) {

return db.rawQuery(sql, null);

}

}

ExcelUtils.java:

package com.ldm.excel;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.List;

import jxl.Workbook;

import jxl.WorkbookSettings;

import jxl.write.Label;

import jxl.write.WritableCell;

import jxl.write.WritableCellFormat;

import jxl.write.WritableFont;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import android.content.Context;

import android.widget.Toast;

public class ExcelUtils {

public static WritableFont arial14font = null;

public static WritableCellFormat arial14format = null;

public static WritableFont arial10font = null;

public static WritableCellFormat arial10format = null;

public static WritableFont arial12font = null;

public static WritableCellFormat arial12format = null;

public final static String UTF8_ENCODING = "UTF-8";

public final static String GBK_ENCODING = "GBK";

public static void format() {

try {

arial14font = new WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD);

arial14font.setColour(jxl.format.Colour.LIGHT_BLUE);

arial14format = new WritableCellFormat(arial14font);

arial14format.setAlignment(jxl.format.Alignment.CENTRE);

arial14format.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);

arial14format.setBackground(jxl.format.Colour.VERY_LIGHT_YELLOW);

arial10font = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);

arial10format = new WritableCellFormat(arial10font);

arial10format.setAlignment(jxl.format.Alignment.CENTRE);

arial10format.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);

arial10format.setBackground(jxl.format.Colour.LIGHT_BLUE);

arial12font = new WritableFont(WritableFont.ARIAL, 12);

arial12format = new WritableCellFormat(arial12font);

arial12format.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);

}

catch (WriteException e) {

e.printStackTrace();

}

}

public static void initExcel(String fileName, String[] colName) {

format();

WritableWorkbook workbook = null;

try {

File file = new File(fileName);

if (!file.exists()) {

file.createNewFile();

}

workbook = Workbook.createWorkbook(file);

WritableSheet sheet = workbook.createSheet("家庭帳務表", 0);

sheet.addCell((WritableCell) new Label(0, 0, fileName, arial14format));

for (int col = 0; col < colName.length; col++) {

sheet.addCell(new Label(col, 0, colName[col], arial10format));

}

workbook.write();

}

catch (Exception e) {

e.printStackTrace();

}

finally {

if (workbook != null) {

try {

workbook.close();

}

catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

@SuppressWarnings("unchecked")

public static void writeObjListToExcel(List objList, String fileName, Context c) {

if (objList != null && objList.size() > 0) {

WritableWorkbook writebook = null;

InputStream in = null;

try {

WorkbookSettings setEncode = new WorkbookSettings();

setEncode.setEncoding(UTF8_ENCODING);

in = new FileInputStream(new File(fileName));

Workbook workbook = Workbook.getWorkbook(in);

writebook = Workbook.createWorkbook(new File(fileName), workbook);

WritableSheet sheet = writebook.getSheet(0);

for (int j = 0; j < objList.size(); j++) {

ArrayList list=(ArrayList) objList.get(j);

for (int i = 0; i < list.size(); i++) {

sheet.addCell(new Label(i, j+1, list.get(i), arial12format));

}

}

writebook.write();

Toast.makeText(c, "保存成功", Toast.LENGTH_SHORT).show();

}

catch (Exception e) {

e.printStackTrace();

}

finally {

if (writebook != null) {

try {

writebook.close();

}

catch (Exception e) {

e.printStackTrace();

}

}

if (in != null) {

try {

in.close();

}

catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

public static Object getValueByRef(Class cls, String fieldName) {

Object value = null;

fieldName = fieldName.replaceFirst(fieldName.substring(0, 1), fieldName.substring(0, 1).toUpperCase());

String getMethodName = "get" + fieldName;

try {

Method method = cls.getMethod(getMethodName);

value = method.invoke(cls);

}

catch (Exception e) {

e.printStackTrace();

}

return value;

}

}

附:完整源碼點擊此處本站下載。

希望本文所述對大家Android程序設計有所幫助。

總結

以上是生活随笔為你收集整理的安卓mysql导出excel_Android开发实现的导出数据库到Excel表格功能【附源码下载】...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。