1. Excel 数据的上传操作:
1). 要求: 用户必须严格的按格式进行填写数据, 然后进行数据的上传
2). 为用户提供一个模板, 先让用户下载模板: "模板"
序号 登录名 姓名 性别 登录许可 部门 职位 E-mail 角色
3). 在模版中填写数据, 进行上传操作.
序号 登录名 姓名 性别 登录许可 部门 职位 E-mail 角色
1 Tom 汤姆 1 1 培训部 技术讲师 tom@tom.com 员工管理员
说明:
a. 必须按顺序填写.
b. 有些字段必须不能为空: 和数据库字段的要求对应
c. 有些字段不能重复: 比如 "登录名", 和数据库字段的要求对应
d. 有些字段的取值必须是合法的取值, 比如 "性别" -- 只能为 "1" 或 "0";
"登录许可" -- 只能为 "1" 或 "0"; "部门" -- 必须是已存在的部门名称;
"职位" 必须是已存在的职位名称; "角色" 必须是已存在的角色名称, 若有多个角色用逗号分隔.
4). 读取 Excel 文件.
①. Excel 文件中放置的数据类型不一样, 则读取的方式也不一样:
switch(cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
System.out.println(cell.getRichStringCellValue().getString());
break;
case Cell.CELL_TYPE_NUMERIC:
if(DateUtil.isCellDateFormatted(cell)) {
System.out.println(cell.getDateCellValue());
} else {
System.out.println(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_BOOLEAN:
System.out.println(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_FORMULA:
System.out.println(cell.getCellFormula());
break;
default:
System.out.println();
}
}
5). 若读取到一条不合法数据, 应为处理为全部都不能录入.
6). 若出现格式错误, 需要在页面上给出相应的提示信息: 通过抛出自定义异常的方式进行处理
2. iText
1. 创建一个 Document 对象.
public Document()
public Document(Rectangle pageSize): 定义页面的大小
public Document(Rectangle pageSize, int marginLeft, int marginRight, int marginTop, int marginBottom): 定义页面的大小, 后边的四个参数分别指定左, 右, 上, 下页边距
2.建立一个书写器 (Writer) 与document对象关联, 通过书写器(Writer)可以将文档写入到磁盘中
3. 打开文档
4. 在文档中添加文字
5. 关闭文档
6.新建 PDFParagraph 解决中文问题.
3. 使用 jFreeChart 和 cewolf 统计数据
常用 API
void setBackgroundImage(Image image): 背景图片
void setBackgroundImageAlpha(float alpha): 背景图片透明度(0.0~1.0)
void setBackgroundPaint(Paint paint): 背景色
void setBorderPaint(Paint paint): 边界线条颜色
void setBorderStroke(Stroke stroke): 边界线条笔触
void setBorderVisible(boolean visible): 边界线条是否可见
1). 要求: 用户必须严格的按格式进行填写数据, 然后进行数据的上传
2). 为用户提供一个模板, 先让用户下载模板: "模板"
序号 登录名 姓名 性别 登录许可 部门 职位 E-mail 角色
3). 在模版中填写数据, 进行上传操作.
序号 登录名 姓名 性别 登录许可 部门 职位 E-mail 角色
1 Tom 汤姆 1 1 培训部 技术讲师 tom@tom.com 员工管理员
说明:
a. 必须按顺序填写.
b. 有些字段必须不能为空: 和数据库字段的要求对应
c. 有些字段不能重复: 比如 "登录名", 和数据库字段的要求对应
d. 有些字段的取值必须是合法的取值, 比如 "性别" -- 只能为 "1" 或 "0";
"登录许可" -- 只能为 "1" 或 "0"; "部门" -- 必须是已存在的部门名称;
"职位" 必须是已存在的职位名称; "角色" 必须是已存在的角色名称, 若有多个角色用逗号分隔.
4). 读取 Excel 文件.
①. Excel 文件中放置的数据类型不一样, 则读取的方式也不一样:
switch(cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
System.out.println(cell.getRichStringCellValue().getString());
break;
case Cell.CELL_TYPE_NUMERIC:
if(DateUtil.isCellDateFormatted(cell)) {
System.out.println(cell.getDateCellValue());
} else {
System.out.println(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_BOOLEAN:
System.out.println(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_FORMULA:
System.out.println(cell.getCellFormula());
break;
default:
System.out.println();
}
}
5). 若读取到一条不合法数据, 应为处理为全部都不能录入.
6). 若出现格式错误, 需要在页面上给出相应的提示信息: 通过抛出自定义异常的方式进行处理
2. iText
1. 创建一个 Document 对象.
public Document()
public Document(Rectangle pageSize): 定义页面的大小
public Document(Rectangle pageSize, int marginLeft, int marginRight, int marginTop, int marginBottom): 定义页面的大小, 后边的四个参数分别指定左, 右, 上, 下页边距
2.建立一个书写器 (Writer) 与document对象关联, 通过书写器(Writer)可以将文档写入到磁盘中
3. 打开文档
4. 在文档中添加文字
5. 关闭文档
6.新建 PDFParagraph 解决中文问题.
3. 使用 jFreeChart 和 cewolf 统计数据
常用 API
void setBackgroundImage(Image image): 背景图片
void setBackgroundImageAlpha(float alpha): 背景图片透明度(0.0~1.0)
void setBackgroundPaint(Paint paint): 背景色
void setBorderPaint(Paint paint): 边界线条颜色
void setBorderStroke(Stroke stroke): 边界线条笔触
void setBorderVisible(boolean visible): 边界线条是否可见