Java读写Excel

gegaosong 2010-02-03 05:32:49
各位:
我想把数据库数据导出到Excel中,同时也可以实现将Excel中的数据导入到数据库中
还有一个就是读写的中文乱码问题,

小弟已经在网上找过一段代码,没跑通,用的是poi,我最希望的是哪位能提供我源代码,不胜感激!

哪位大侠有代码的话,发一个份给我!
419976705@qq.com
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qianmz 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gegaosong 的回复:]
引用 4 楼 qianmz 的回复:
上面是写,下面是读Excel的部分代码:
Workbook workbook = null;
try {
workbook =
Workbook.getWorkbook(new File(this.filePath + fileName));
int sheetsNumber = workbook.getNumberOfSheets();
//遍历每个sheet
for (int i = 0; i < sheetsNumber; i++) {
Sheet sheet = (Sheet) workbook.getSheet(i);
// 得到第一行
Cell[] cell0 = sheet.getRow(0);
//如果没有行,或者不存在
if (cell0 == null || cell0.length == 0){
continue;
}
//属性数组
String[] properitiesArr = new String[cell0.length];
int userIdColum = -1; //用户帐号的列
//遍历一行的每个列
for(int j = 0; j < cell0.length; j++) {
properitiesArr[j] =
Util.dealNull(cell0[j].getContents()).trim();
//如果是学号列,记录下列值 j
if(properitiesArr[j].equals("XS010001")){
userIdColum = j;
}
}
if (userIdColum < 0) {
System.out.println("上传出差...文件中没有学生账号列!");

return false;
}

/* 第0行是头信息,第一行是汉字的说明信息,数据从第二行开始
* getCell(列, 行)
* 把解析的信息放在Map中;
*/
//每行
for (int j = 2; j < sheet.getRows(); j++) {


写我已经实现,但是读的话,那个Util类是哪个包下面的啊,
[/Quote]
哦,那是自己写的一个类
gegaosong 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qianmz 的回复:]
上面是写,下面是读Excel的部分代码:
Workbook workbook = null;
try {
workbook =
Workbook.getWorkbook(new File(this.filePath + fileName));
int sheetsNumber = workbook.getNumberOfSheets();
//遍历每个sheet
for (int i = 0; i < sheetsNumber; i++) {
Sheet sheet = (Sheet) workbook.getSheet(i);
// 得到第一行
Cell[] cell0 = sheet.getRow(0);
//如果没有行,或者不存在
if (cell0 == null || cell0.length == 0){
continue;
}
//属性数组
String[] properitiesArr = new String[cell0.length];
int userIdColum = -1; //用户帐号的列
//遍历一行的每个列
for(int j = 0; j < cell0.length; j++) {
properitiesArr[j] =
Util.dealNull(cell0[j].getContents()).trim();
//如果是学号列,记录下列值 j
if(properitiesArr[j].equals("XS010001")){
userIdColum = j;
}
}
if (userIdColum < 0) {
System.out.println("上传出差...文件中没有学生账号列!");

return false;
}

/* 第0行是头信息,第一行是汉字的说明信息,数据从第二行开始
* getCell(列, 行)
* 把解析的信息放在Map中;
*/
//每行
for (int j = 2; j < sheet.getRows(); j++) {
[/Quote]

写我已经实现,但是读的话,那个Util类是哪个包下面的啊,
jeff0002 2010-02-03
  • 打赏
  • 举报
回复
http://download.csdn.net/source/1750251 这个应该可以帮到你
qianmz 2010-02-03
  • 打赏
  • 举报
回复
上面是写,下面是读Excel的部分代码:
Workbook workbook = null;
try {
workbook =
Workbook.getWorkbook(new File(this.filePath + fileName));
int sheetsNumber = workbook.getNumberOfSheets();
//遍历每个sheet
for (int i = 0; i < sheetsNumber; i++) {
Sheet sheet = (Sheet) workbook.getSheet(i);
// 得到第一行
Cell[] cell0 = sheet.getRow(0);
//如果没有行,或者不存在
if (cell0 == null || cell0.length == 0){
continue;
}
//属性数组
String[] properitiesArr = new String[cell0.length];
int userIdColum = -1; //用户帐号的列
//遍历一行的每个列
for(int j = 0; j < cell0.length; j++) {
properitiesArr[j] =
Util.dealNull(cell0[j].getContents()).trim();
//如果是学号列,记录下列值 j
if(properitiesArr[j].equals("XS010001")){
userIdColum = j;
}
}
if (userIdColum < 0) {
System.out.println("上传出差...文件中没有学生账号列!");

return false;
}

/* 第0行是头信息,第一行是汉字的说明信息,数据从第二行开始
* getCell(列, 行)
* 把解析的信息放在Map中;
*/
//每行
for (int j = 2; j < sheet.getRows(); j++) {
qianmz 2010-02-03
  • 打赏
  • 举报
回复
jxl:

OutputStream os = null;
try {
os = new FileOutputStream(file);
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
WritableSheet sheet = wwb.createSheet("sheet1", 0);
sheet.getSettings().setDefaultColumnWidth(10);

TeacherAssessmentDao dao = TeacherAssessmentDao.getInstance();
List teaList = dao.findTeacherList(gradeId, subjectId);
int cols = 22;
int rows = teaList.size();
sheet.addCell(new Label(0,0,"姓名"));sheet.addCell(new Label(1,0,"政治思想表现"));
sheet.addCell(new Label(2,0,"遵纪守法"));sheet.addCell(new Label(3,0,"职业道德"));
sheet.addCell(new Label(4,0,"服从分配"));sheet.addCell(new Label(5,0,"专业水平"));
sheet.addCell(new Label(6,0,"继续教育"));sheet.addCell(new Label(7,0,"工作量"));
sheet.addCell(new Label(8,0,"班主任"));sheet.addCell(new Label(9,0,"工作计划"));
sheet.addCell(new Label(10,0,"备课"));sheet.addCell(new Label(11,0,"课堂教学"));
sheet.addCell(new Label(12,0,"作业批改"));sheet.addCell(new Label(13,0,"考试成绩"));
sheet.addCell(new Label(14,0,"教研能力与新课程"));sheet.addCell(new Label(15,0,"公开教学听课评课"));
sheet.addCell(new Label(16,0,"指导培养教师"));sheet.addCell(new Label(17,0,"论文总结"));
sheet.addCell(new Label(18,0,"辅导"));sheet.addCell(new Label(19,0,"出勤情况劳动纪律"));
sheet.addCell(new Label(20,0,"附加"));sheet.addCell(new Label(21,0,"总分"));
if(teaList.size()>0)
for(int row=1;row<rows;row++){
TeachingPoints tp = (TeachingPoints)teaList.get(row-1);
for(int col=0;col<cols;col++){
if(col==0) sheet.addCell(new Label(col,row,tp.getTeacherName()));
else if(col==1){ sheet.addCell(new Label(col,row,tp.getPoliThinkScore()));}
else if(col==2){ sheet.addCell(new Label(col,row,tp.getObeyRuleScore()));}
else if(col==3){ sheet.addCell(new Label(col,row,tp.getJobEthicsScore()));}
else if(col==4){ sheet.addCell(new Label(col,row,tp.getObeyAssignScore()));}
else if(col==5){ sheet.addCell(new Label(col,row,tp.getProfeLevelScore()));}
else if(col==6){ sheet.addCell(new Label(col,row,tp.getGoonEduScore()));}
else if(col==7){ sheet.addCell(new Label(col,row,tp.getJobAmountScore()));}
else if(col==8){ sheet.addCell(new Label(col,row,tp.getHeadTeaScore()));}
else if(col==9){ sheet.addCell(new Label(col,row,tp.getJobPlanScore()));}
else if(col==10){ sheet.addCell(new Label(col,row,tp.getPreLessonScore()));}
else if(col==11){ sheet.addCell(new Label(col,row,tp.getClaRoomTeaScore()));}
else if(col==12){ sheet.addCell(new Label(col,row,tp.getHworkAssignScore()));}
else if(col==13){ sheet.addCell(new Label(col,row,tp.getExamResultScore()));}
else if(col==14){ sheet.addCell(new Label(col,row,tp.getJyCapAndNewScore()));}
else if(col==15){ sheet.addCell(new Label(col,row,tp.getOpenTeaScore()));}
else if(col==16){ sheet.addCell(new Label(col,row,tp.getGuideTeaScore()));}
else if(col==17){ sheet.addCell(new Label(col,row,tp.getPapersScore()));}
else if(col==18){ sheet.addCell(new Label(col,row,tp.getTutorScore()));}
else if(col==19){ sheet.addCell(new Label(col,row,tp.getDisciplineScore()));}
else if(col==20){ sheet.addCell(new Label(col,row,tp.getAddtionalScore()));}
else if(col==21){ sheet.addCell(new Label(col,row,tp.getCalAll()));}
}
}
wwb.write();
wwb.close();
os.close();
plplum 2010-02-03
  • 打赏
  • 举报
回复
jxl也不错的
whatisthejava 2010-02-03
  • 打赏
  • 举报
回复
顶个

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧