使用jxl创建日程管理表格

使用jxl创建日程管理表格 转载:http://blog.csdn.net/flowing/archive/2005/12/14/552369.aspx

[@more@]

习惯上,每周都会创建一个管理该周日程的Excel文件。该文件名为"yyyy年第w周",里面包括八个sheet,名称依次为"w周",以及这周包括的七天的日期。每个sheet左上角有一个两行七列的表格,第一行为"周日"-"周六",第二行为七天的日期。
借助于jxl.jar,可实现自动创建。完整的代码如下所示:

/*
* 创建日期 2005-12-13
*/

package org.easev.scheduler;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

/**
* 创建当前周的schedule文件
* 依赖jxl.jar
*
* @author liusu
*/
public class Console {

public static final SimpleDateFormat formatter = new SimpleDateFormat(
"MM.dd");

public static final String[] ZH_DAY_OF_WEEK = { "周日", "周一", "周二", "周三",
"周四", "周五", "周六" };

/**
* 可考虑借助于参数加入一些定制行为
*
* @param args
*/
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();

//获取当前年份及周次,从而得到schedule文件名
int currentYear = cal.get(Calendar.YEAR);
int currentWeek = cal.get(Calendar.WEEK_OF_YEAR);
String fileName = currentYear + "年第" + currentWeek + "周.xls";

//sheet名称
String[] sheetNames = new String[8];
sheetNames[0] = currentWeek + "周";

//为恢复用
int CUR_DAY_OF_WEEK = cal.get(Calendar.DAY_OF_WEEK);
for (int i = 1; i < sheetNames.length; i++) {
cal.set(Calendar.DAY_OF_WEEK, i);
sheetNames[i] = formatter.format(cal.getTime());
}
//恢复cal设置(可能并不需要)
cal.set(Calendar.DAY_OF_WEEK, CUR_DAY_OF_WEEK);

try {
WritableWorkbook workbook = Workbook.createWorkbook(new File(
fileName));

WritableSheet[] sheets = new WritableSheet[8];

WritableCellFormat cellFormat = new WritableCellFormat();
cellFormat.setAlignment(Alignment.CENTRE);

for (int i = 0; i < sheets.length; i++) {
sheets[i] = workbook.createSheet(sheetNames[i], i);
for (int j = 0; j < 7; j++) {
sheets[i].addCell(new Label(j, 0, ZH_DAY_OF_WEEK[j],
cellFormat));
}
for (int j = 0; j < 7; j++) {
sheets[i].addCell(new Label(j, 1, sheetNames[j + 1],
cellFormat));
}
}

workbook.write();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7199667/viewspace-915322/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7199667/viewspace-915322/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值