巧用BufferedReader和BufferedWriter修改excel内容
这是一个很实用的方法,也是给自己工作做得一份笔记。
说起excel,很多人会问我,excel不是要用poi来读取么,其实还有一种方法,就是先把excel的内容另存为.csv文件。
首先先看一下原文件
这是125辆车的数据,老板告诉我要我把这125辆车找出来改到其他服务商名下,我当时就不乐意了,你当初为啥不直接加过去,但是不乐意归不乐意,活还是要干,我就在想怎么改过去。很多熟悉数据库的小伙伴肯定都想到了,一个in查询+update不就完了么,我也是这样想的,但是数据格式不对,要怎么转变成方便我们查询的格式呢?
首先我们先把不需要的列删除,然后看一下csv的定义,是把这些表格中行的数据用“,”分割,那就简单了,
保存之后:
很多小伙伴可能感觉差不多了,我当时也是这么觉得的,但是实际一查,发现这个字段是string类型的,少了引号,怎么办呢?
下面就上最关键部分的代码:
public static void main(String[] args) {
File file = new File("C:/Users/宇哥荡漾/Desktop/第二批125台分时租赁.csv");
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("C:/Users/宇哥荡漾/Desktop/第二批125台分时租赁new.csv")),"GBK"));
String line = null;
while((line = bufferedReader.readLine()) != null){
bufferedWriter.write("'"+line.substring(0,line.length()-1)+"',");
}
bufferedWriter.flush();
bufferedWriter.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
然后我们就获得了这样的数据
然后就是查询,不多说了,大功告成。