//创建excel并写入信息
public void create(String savePath) throws IOException, RowsExceededException, WriteException{
createFolder(savePath);
String fileName = savePath + "/test.xls";
File file = new File(fileName);
WritableWorkbook wwb = Workbook.createWorkbook(file);
WritableSheet ws = wwb.createSheet("sheet 1",0);
ws.addCell(new Label(0,0,"apiName"));
ws.addCell(new Label(1,0,"selectedTimes"));
wwb.write();
wwb.close();
}
//添加信息或更新信息
public void addOrUpdate(String savePath) throws BiffException, IOException, WriteException{
// 创建只读的 Excel 工作薄的对象
File source = new File(savePath + "/test.xls");
Workbook rw = Workbook.getWorkbook(source);
Sheet sheet = rw.getSheet(0);
//获取Sheet表中所包含的总列数
int columns = sheet.getColumns();
//获取Sheet表中所包含的总行数
int rows = sheet.getRows();
// 创建可写入的 Excel 工作薄对象
File dest = new File(savePath + "/test.xls");
//将源excel文件复制到目的excel文件
WritableWorkbook wwb = Workbook.createWorkbook(dest, rw);
// 读取第一张工作表
WritableSheet ws = wwb.getSheet(0);
//添加新的内容
ws.addCell(new Label(0,rows,"map"));
ws.addCell(new Label(1,rows,"2"));
/*用来Upadate
// 获得第一个单元格对象
WritableCell wc = ws.getWritableCell(0, 0);
// 判断单元格的类型 , 做出相应的转化
if(wc.getType() == CellType.LABEL)
{
Label l = (Label)wc;
l.setString("The value has been modified.");
}
*/
// 写入 Excel 对象
wwb.write();
// 关闭可写入的 Excel 对象
wwb.close();
// 关闭只读的 Excel 对象
rw.close();
}
//创建文件夹
/*
* 创建存储excel文件的文件夹
*/
public static void createFolder(String path){
File folder = new File(path);
if(!(folder.exists()) && !(folder.isDirectory())){
boolean createOk = folder.mkdirs();
if(createOk){
System.out.println("ok:创建文件夹成功!" );
}else{
System.out.println("err:创建文件夹失败! " );
}
}
}
//默认Label写入String型,下面是写入各种类型,如数字等
//1. 添加 Label 对象
jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell");
ws.addCell(labelC);
// 添加带有字型 Formatting 的对象
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18,
WritableFont.BOLD, true);
jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cell", wcfF);
ws.addCell(labelCF);
// 添加带有字体颜色 Formatting 的对象
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10,
WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cell", wcfFC);
ws.addCell(labelCF);
//2. 添加 Number 对象
jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
ws.addCell(labelN);
// 添加带有 formatting 的 Number 对象
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
ws.addCell(labelNF);
//3. 添加 Boolean 对象
jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
ws.addCell(labelB);
//4. 添加 DateTime 对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());
ws.addCell(labelDT);
// 添加带有 formatting 的 DateFormat 对象
jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(),
wcfDF);
ws.addCell(labelDTF);
//读取excel
/*new
* 获取上传的excel教师信息文件,并进行解析,将各项内容存储到数据库中
*/
public List<Teacher> getTeachers(String filePath){
InputStream is = null;
try {
is = new FileInputStream(filePath);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
Workbook wb = Workbook.getWorkbook(is);
Sheet sheet = wb.getSheet(0); // 第几张表格从零开始
if (sheet != null) {
// 获取表格总列数
int rsColumns = sheet.getColumns();
// 获取表格总行数
int rsRows = sheet.getRows();
teacherList = new ArrayList();
for (int rowNum = 1; rowNum < rsRows; rowNum++) {
Cell[] cells = sheet.getRow(rowNum);
for (int i = 0; i < rsColumns && i < cells.length; i++) {// 列数
System.out.println(getExcelColumnLabel(i)
+ "============" + cells[i].getContents());
String columnLabel = getExcelColumnLabel(i);
String content = cells[i].getContents();
if(columnLabel.equals("A")){
no = content;
}
if(columnLabel.equals("B")){
name = content;
}
if(columnLabel.equals("C")){
password = content;
}
if(columnLabel.equals("D")){
if(content.equals("男")){
gender = "1";
}else{
gender = "2";
}
}
if(columnLabel.equals("E")){
telpone = content;
}
if(columnLabel.equals("F")){
qq = content;
}
if(columnLabel.equals("G")){
title = content;
}
if(columnLabel.equals("H")){
permission = content;
}
}
Teacher teacher = new Teacher();
teacher.setNo(no);
teacher.setName(name);
teacher.setPassword(password);
teacher.setGender(gender);
teacher.setTelpone(telpone);
teacher.setQq(qq);
teacher.setTitle(title);
teacher.setPermission(permission);
teacherList.add(teacher);
}
}
wb.close();
} catch (Exception e) {
e.printStackTrace();
}
return teacherList;
}
/**
* 获取excel对应列的字母
*
* @author
* @param num
* @return
*/
public static String getExcelColumnLabel(int num) {
String temp = "";
double i = Math.floor(Math.log(25.0 * (num) / 26.0 + 1) / Math.log(26)) + 1;
if (i > 1) {
double sub = num - 26 * (Math.pow(26, i - 1) - 1) / 25;
for (double j = i; j > 0; j--) {
temp = temp + (char) (sub / Math.pow(26, j - 1) + 65);
sub = sub % Math.pow(26, j - 1);
}
} else {
temp = temp + (char) (num + 65);
}
return temp;
}