用java怎么把指定的csv文件,写到指定的excel的sheet里?

 我来答
来自阡陌
2017-04-27
知道答主
回答量:10
采纳率:0%
帮助的人:4.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了

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式