请问下如何给java文件添加配置文件啊

m11418166 2017-12-07 05:06:41
 import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;





public class zijixiedefangfa {
public static void main(String[] args) throws BiffException, IOException, ParseException {
String fileName = "D://Io//jisuan.xls"; // Excel文件所在路径
File file = new File(fileName); // 创建文件对象
Workbook wb = Workbook.getWorkbook(file); // 从文件流中获取Excel工作区对象(WorkBook)
Sheet sheet = wb.getSheet(0); // 从工作区中取得页(Sheet)

int n =0;
Date min = null;

String firm = ""; //定义公司
String name = ""; //定义姓名
String day = ""; //定义日期
String time_start = ""; //定义最早时间
String time_end = ""; //定义最晚时间

List shuju = new ArrayList(); //定义总的传入集合
List bumen = new ArrayList(); //部门
List xingming = new ArrayList(); //姓名
List date = new ArrayList(); //日期
List earlyTime = new ArrayList(); //上班时间
List endTime = new ArrayList<Date>(); //下班时间
List workTime = new ArrayList(); //上班时间
List chidao = new ArrayList(); //迟到
List zaotui = new ArrayList(); //早退

//最晚上班时间
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
Date biaozhun = df.parse("10:00:00");

while(n<sheet.getRows()){
//这一天的最早上班时间
firm = sheet.getCell(0,shuju.size()).getContents();
name = sheet.getCell(1,shuju.size()).getContents();
day = sheet.getCell(2,shuju.size()).getContents();
time_start = sheet.getCell(3,shuju.size()).getContents();

bumen.add(sheet.getCell(0,shuju.size()).getContents());
xingming.add(sheet.getCell(1,shuju.size()).getContents());
date.add(sheet.getCell(2,shuju.size()).getContents());
earlyTime.add(sheet.getCell(3,shuju.size()).getContents());
//判断是否迟到
if(df.parse(sheet.getCell(3,shuju.size()).getContents()).getTime()>biaozhun.getTime()){
chidao.add("迟到");
}else{
chidao.add("");
}

while(n<sheet.getRows()){
//如果前三条数据一样的话 说明是同一天
if(sheet.getCell(0,n).getContents().equals(firm) && sheet.getCell(1,n).getContents().equals(name) && sheet.getCell(2,n).getContents().equals(day) ){
shuju.add(sheet.getCell(3,n).getContents());
}else{
break;
}
n++;
}
//当前三条数据不一样时 退出当前while循环 数组长度减1的下标就是下班时间
endTime.add(sheet.getCell(3,shuju.size()-1).getContents());
}

for (int i = 0; i < earlyTime.size(); i++) {
try {
workTime.add((df.parse((String) endTime.get(i)).getTime()-df.parse((String) earlyTime.get(i)).getTime())/3600000+"小时");
//判断是否早退
if((df.parse((String) endTime.get(i)).getTime()-df.parse((String) earlyTime.get(i)).getTime())/3600000>=8){
zaotui.add("");
}else{
zaotui.add("早退");
}
} catch (ParseException e) {
e.printStackTrace();
}
}
//关闭读取流
wb.close();


try {
//打开写入流
WritableWorkbook book = Workbook.createWorkbook(new File("D://Io//stu.xls"));
// 生成名为“sheet1”的工作表,参数0表示这是第一页
WritableSheet kaoqin = book.createSheet("kaoqin", 0);

//写入部门
for (int i = 0; i < bumen.size(); i++) {
Label label = new Label(0, i, (String) bumen.get(i));
// 将定义好的单元格添加到工作表中
kaoqin.addCell(label);
}

//写入姓名
for (int i = 0; i < xingming.size(); i++) {
Label label = new Label(1, i, (String) xingming.get(i));
kaoqin.addCell(label);
}

//写入日期
for (int i = 0; i < date.size(); i++) {
Label label = new Label(2, i, (String) date.get(i));
kaoqin.addCell(label);
}

//写入上班时间
for (int i = 0; i < earlyTime.size(); i++) {
Label label = new Label(3, i, (String) earlyTime.get(i));
kaoqin.addCell(label);
}


//写入下班时间
for (int i = 0; i < endTime.size(); i++) {
Label label = new Label(4, i, (String) endTime.get(i));
kaoqin.addCell(label);
}

//写入总共上班时间
for (int i = 0; i < workTime.size(); i++) {
Label label = new Label(5, i, (String) workTime.get(i)) ;
kaoqin.addCell(label);
}

//加入迟到

for (int i = 0; i < chidao.size(); i++) {
Label label = new Label(6, i, (String) chidao.get(i)) ;
kaoqin.addCell(label);
}

//写入早退
for (int i = 0; i < zaotui.size(); i++) {
Label label = new Label(7, i, (String) zaotui.get(i)) ;
kaoqin.addCell(label);
}

book.write(); //执行写入操作
book.close(); //关闭流

}catch (Exception e) {
System.out.println(e);

}
}
}


写了一个统计系统 需要读取表格文件 想添加一个配置文件 来修改读取的路径 需要怎么做啊
...全文
381 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
迟到_啦 2017-12-12
  • 打赏
  • 举报
回复
引用 6 楼 m11418166 的回复:
[quote=引用 4 楼 qq_19314763 的回复:] 看了你的代码,我提一个小建议: 变量或类命名不要用拼音,可以用英文单词代替,而且要遵循命名规则,比如你的类名 zijixiedefangfa可以直接MyMethod代替,还有那个Date类型的变量名 biaozhun,一般不那么命名,你可以换成英文单词简写或者 date_bz这类型的。(只是建议,仅供参考)
谢谢对我很有用,还是需要代码规范的,我自学的。。很多地方不标准,别人也不好看,我先按照别人的建议,一点一点改 多谢了[/quote] 都是同路人,找对方法,一步一步踏实走,离你的目标会越来越近,我看好你
m11418166 2017-12-11
  • 打赏
  • 举报
回复
引用 4 楼 qq_19314763 的回复:
看了你的代码,我提一个小建议: 变量或类命名不要用拼音,可以用英文单词代替,而且要遵循命名规则,比如你的类名 zijixiedefangfa可以直接MyMethod代替,还有那个Date类型的变量名 biaozhun,一般不那么命名,你可以换成英文单词简写或者 date_bz这类型的。(只是建议,仅供参考)
谢谢对我很有用,还是需要代码规范的,我自学的。。很多地方不标准,别人也不好看,我先按照别人的建议,一点一点改 多谢了
天边龙一条 2017-12-09
  • 打赏
  • 举报
回复
直接扔到程序目录下就可以了
迟到_啦 2017-12-08
  • 打赏
  • 举报
回复
看了你的代码,我提一个小建议: 变量或类命名不要用拼音,可以用英文单词代替,而且要遵循命名规则,比如你的类名 zijixiedefangfa可以直接MyMethod代替,还有那个Date类型的变量名 biaozhun,一般不那么命名,你可以换成英文单词简写或者 date_bz这类型的。(只是建议,仅供参考)
迟到_啦 2017-12-08
  • 打赏
  • 举报
回复
引用 2 楼 m11418166 的回复:
[quote=引用 1 楼 ribut9225 的回复:] 这应该不难吧? 在程序目录下新建一个path.ini文件 程序的其他界面里设置path.ini文件中的键值 然后读取path.ini文件中的键值,赋值给filename就行了
我用的是properties 百度的自己鼓捣了一番 然后好像可以了 我水平比较低 见谅啦[/quote] 我们目前也是用的properties配置文件,可以实现的, 就是在该文件中存一些键值对形式的数据,然后在java程序中解析之后根据key拿到相应的内容(比如路径filePath)
m11418166 2017-12-07
  • 打赏
  • 举报
回复
引用 1 楼 ribut9225 的回复:
这应该不难吧? 在程序目录下新建一个path.ini文件 程序的其他界面里设置path.ini文件中的键值 然后读取path.ini文件中的键值,赋值给filename就行了
我用的是properties 百度的自己鼓捣了一番 然后好像可以了 我水平比较低 见谅啦
ribut9225 2017-12-07
  • 打赏
  • 举报
回复
这应该不难吧? 在程序目录下新建一个path.ini文件 程序的其他界面里设置path.ini文件中的键值 然后读取path.ini文件中的键值,赋值给filename就行了

62,610

社区成员

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

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