package com.dayu.recharge.utils;
|
|
import android.content.Context;
|
import android.widget.Toast;
|
|
import com.dayu.recharge.dbBean.RechargeBean;
|
import com.dayu.recharge.dbBean.UserCardBean;
|
|
import java.io.File;
|
import java.io.FileInputStream;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import jxl.Workbook;
|
import jxl.WorkbookSettings;
|
import jxl.format.Colour;
|
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;
|
|
/**
|
* Created by zuoxiao on 2018/12/31.
|
*/
|
|
public class ExcelUtil {
|
|
private static WritableCellFormat arial14format = null;
|
private static WritableCellFormat arial10format = null;
|
private static WritableFont arial12font = null;
|
private static WritableCellFormat arial12format = null;
|
private final static String UTF8_ENCODING = "UTF-8";
|
|
public static String outPath = MyFileUtil.getSDPath() + "/" + "大禹节水充值机记录";
|
public static String outRechargePathName = "充值记录.xls";
|
public static String outUserPathName = "开户记录.xls";
|
|
/**
|
* 单元格的格式设置 字体大小 颜色 对齐方式、背景颜色等...
|
*/
|
private static void format() {
|
try {
|
WritableFont 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);
|
|
WritableFont 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(Colour.GRAY_25);
|
|
arial12font = new WritableFont(WritableFont.ARIAL, 10);
|
arial12format = new WritableCellFormat(arial12font);
|
//对齐格式
|
arial10format.setAlignment(jxl.format.Alignment.CENTRE);
|
//设置边框
|
arial12format.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);
|
|
} catch (WriteException e) {
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 初始化Excel
|
*
|
* @param fileName 导出excel存放的地址(目录)
|
* @param colName excel中包含的列名(可以有多个)
|
*/
|
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));
|
}
|
//设置行高
|
sheet.setRowView(0, 340);
|
workbook.write();
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
if (workbook != null) {
|
try {
|
workbook.close();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
}
|
|
@SuppressWarnings("unchecked")
|
public static <T> void writeObjListToExcel(List<T> 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++) {
|
List<String> list = new ArrayList<>();
|
if (objList.get(j) instanceof RechargeBean) {
|
RechargeBean projectBean = (RechargeBean) objList.get(j);
|
list.add(projectBean.getSerial());
|
list.add(projectBean.getUserName());
|
list.add(projectBean.getOrderID());
|
list.add(DateUtil.dateToStamp(projectBean.getDate(), DateUtil.type2));
|
list.add(projectBean.getMorny());
|
list.add(projectBean.getBalance());
|
} else {
|
UserCardBean userCardBean = (UserCardBean) objList.get(j);
|
list.add(userCardBean.getSerial());
|
list.add(userCardBean.getUserName());
|
list.add(userCardBean.getUserID());
|
list.add(DateUtil.dateToStamp(userCardBean.getDate(), DateUtil.type2));
|
list.add(userCardBean.getPhone());
|
}
|
|
for (int i = 0; i < list.size(); i++) {
|
sheet.addCell(new Label(i, j + 1, list.get(i), arial12format));
|
if (list.get(i).length() <= 4) {
|
//设置列宽
|
sheet.setColumnView(i, list.get(i).length() + 8);
|
} else {
|
//设置列宽
|
sheet.setColumnView(i, list.get(i).length() + 5);
|
}
|
}
|
//设置行高
|
sheet.setRowView(j + 1, 350);
|
}
|
|
writebook.write();
|
Toast.makeText(c, "导出Excel成功", 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();
|
}
|
}
|
}
|
|
}
|
}
|
}
|