用java怎么把指定的csv文件,写到指定的excel的sheet里?
1个回答
展开全部
先通过通过java里面的io一行一行的读出来,
再用循环通过split分割,一行里面的一个一个数据应该有什么符号分割,我见过的是逗号,
分割出来的数据你可以把它们放在一个一个数组里面,
最后用poi写入到excel里面
package com.poi;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class CsvToExcel {
public static void main(String[] args) throws IOException {
// 读取csv文件
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("d:\\1.csv")),"GBK"));
String line;
// 创建结果集,泛型可以根据实际情况定
List<List<String>> dataList= new ArrayList<List<String>>();
while ((line = br.readLine()) != null) {
line = line.replace("\"", "");
String[] split = line.split(",");
List<String> t = new ArrayList<String>();
for (int i = 0; i < split.length; i++) {
t.add(split[i]);
}
dataList.add(t);
}
// 使用poi导出excel,poi是通过循环的方式创建行和单元格
// 声明一个工作薄
HSSFWorkbook wb = new HSSFWorkbook();
//声明一个单子并命名
HSSFSheet sheet = wb.createSheet("测试");
//给单子名称一个长度
sheet.setDefaultColumnWidth((short)15);
for (int i = 0; i < dataList.size(); i++) {
// 创建行
HSSFRow row = sheet.createRow(i);
List<String> list = dataList.get(i);
for (int j = 0; j < list.size(); j++) {
// 创建单元格
HSSFCell cell = row.createCell(j);
cell.setCellValue(list.get(j));
}
}
// 写入到文件里面
FileOutputStream out = new FileOutputStream("D://测试.xls");
wb.write(out);
out.close();
}
}
这是我用的jar包,只是用到一些个,姑且全部build path了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询