巧用BufferedReader和BufferedWriter修改excel内容

这是一个很实用的方法,也是给自己工作做得一份笔记。

说起excel,很多人会问我,excel不是要用poi来读取么,其实还有一种方法,就是先把excel的内容另存为.csv文件。

巧用BufferedReader和BufferedWriter修改excel内容

首先先看一下原文件巧用BufferedReader和BufferedWriter修改excel内容

这是125辆车的数据,老板告诉我要我把这125辆车找出来改到其他服务商名下,我当时就不乐意了,你当初为啥不直接加过去,但是不乐意归不乐意,活还是要干,我就在想怎么改过去。很多熟悉数据库的小伙伴肯定都想到了,一个in查询+update不就完了么,我也是这样想的,但是数据格式不对,要怎么转变成方便我们查询的格式呢?

首先我们先把不需要的列删除,然后看一下csv的定义,是把这些表格中行的数据用“,”分割,那就简单了,

巧用BufferedReader和BufferedWriter修改excel内容

保存之后:

巧用BufferedReader和BufferedWriter修改excel内容

很多小伙伴可能感觉差不多了,我当时也是这么觉得的,但是实际一查,发现这个字段是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();
		}
	}

然后我们就获得了这样的数据

巧用BufferedReader和BufferedWriter修改excel内容

然后就是查询,不多说了,大功告成。

巧用BufferedReader和BufferedWriter修改excel内容