自己写日志记录类,讲日志记录在exel中
来源:互联网 发布:日本美女直播软件 编辑:程序博客网 时间:2024/06/05 06:41
1.导入jar包jxl.jar
2.日志model
package com.yinlianhang.log4j.javabean;
public class MyLog {
public String status;//状态
public String operator;//操作人
public String actions;//动作
public String time;//时间
public String remarks;//备注
public MyLog(String status, String operator, String actions, String time,
String remarks) {
super();
this.status = status;
this.operator = operator;
this.actions = actions;
this.time = time;
this.remarks = remarks;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public String getActions() {
return actions;
}
public void setActions(String actions) {
this.actions = actions;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
}
3.日志管理类
package com.yinlianhang.log4j.javabean;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class LogToExel {
public static Workbook rwb;
public static WritableWorkbook wwb;
/**
* 记录日志,每天一张一只表,每月一个exel文件
*
* @param myLog
* 日志对象
*/
public static void addLog(MyLog myLog) {
WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLUE);
WritableCellFormat wcfFC = new WritableCellFormat(wfc);
WritableSheet ws = getWritableSheet();// 拿到可写入日志的工作簿
if (null != ws) {
// 判断单元格的类型,做出相应的转换
try {
int rows = ws.getRows();// 得到行数
Label labelCF1 = new Label(0, rows, myLog.getStatus(), wcfFC);
Label labelCF2 = new Label(1, rows, myLog.getOperator(), wcfFC);
Label labelCF3 = new Label(2, rows, myLog.getActions(), wcfFC);
Label labelCF4 = new Label(3, rows, myLog.getTime(), wcfFC);
Label labelCF5 = new Label(4, rows, myLog.getRemarks(), wcfFC);
ws.addCell(labelCF1);
ws.addCell(labelCF2);
ws.addCell(labelCF3);
ws.addCell(labelCF4);
ws.addCell(labelCF5);
wwb.write();
wwb.close();
if (null != rwb) {
rwb.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 获取可插入数据的工作簿
*
* @return
*/
public static WritableSheet getWritableSheet() {
File f = new File("D:/" + getMonthString() + ".xls");
try {
if (f.exists()) {// 文件存在,可以直接写
rwb = Workbook.getWorkbook(f);
wwb = Workbook.createWorkbook(f, rwb);
WritableSheet sheet = wwb.getSheet(getDayString());
if (null != sheet) {
return sheet;
} else {
return wwb.createSheet(getDayString(), wwb
.getNumberOfSheets());
}
} else {// 文件不存在,需要新建
wwb = Workbook.createWorkbook(new File("D:/" + getMonthString()+ ".xls"));
WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE);
WritableCellFormat wcfFC = new WritableCellFormat(wfc);
WritableSheet sheet = wwb.createSheet(getDayString(), 0);//注意:如果新建表格而没有初始化的话,会格式与打开方式类型不一致的错误
Label labelCF1 = new Label(0, 0, "状态", wcfFC);
Label labelCF2 = new Label(1, 0, "操作人", wcfFC);
Label labelCF3 = new Label(2, 0, "动作", wcfFC);
Label labelCF4 = new Label(3, 0, "时间", wcfFC);
Label labelCF5 = new Label(4, 0, "备注", wcfFC);
try {
sheet.addCell(labelCF1);
sheet.addCell(labelCF2);
sheet.addCell(labelCF3);
sheet.addCell(labelCF4);
sheet.addCell(labelCF5);
return sheet;
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 获取某年某月某日的时间字符串
*
* @return
*/
public static String getDayString() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日");
return f.format(cal.getTime());
}
/**
* 获取某年某月的时间字符串
*
* @return
*/
public static String getMonthString() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月");
return f.format(cal.getTime());
}
}
4.测试
LogToExel.addLog(new MyLog("成功","测试者","测试记录数据",new Date().toString(),"这是个测试数据"));
- 自己写日志记录类,讲日志记录在exel中
- 在项目中记录日志
- 在Java中处理日志记录
- 在PB中记录系统出错日志
- 如何在VC中记录系统日志
- 在Java中处理日志记录
- 在tomcat6中使用log4j记录日志
- java 在文件中记录异常日志
- 在ASP.NET中记录错误日志
- 在多线程应用程序中进行日志记录
- 如何在 WebDriver 中实现日志记录
- 如何在MySql中记录SQL日志
- 如何在Spark中记录日志
- Android记录自己的日志
- asp.net 写日志记录
- MySQL日志记录(3)在MySQL表中显示日志
- 记录日志类
- 网站记录日志类
- ZigBee 3.0 为广泛设备创建单一开放式全球无线标准
- excel日期转星期(批量处理)
- python学习之基础知识(四)
- 学习Python编程的11个资源
- 菜鸟学自动化测试(一)----selenium IDE
- 自己写日志记录类,讲日志记录在exel中
- cookie jQuery.cookie
- 动态规划的典型例题
- hibernate处理clob
- memcached集群架构方面的问题
- Socket局域网多线程传输文件的方法
- Android开发规范
- 关于iOS 代理与回调(新手)
- 说说 Index Condition Pushdown