package com.edu.controller;
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;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* @Author WangXuefeng
* @Create 2020-06-22-14:44
* @Description:
*/
public class CsvTest {
public static void main(String[] args) {
// File directory = new File("");
// System.out.println("读取当面目录:"+directory.getAbsolutePath());
// System.out.println("使用说明:请将csv文件明明为:'评价数据.csv',生成excel文件为:result.xls");
// dir=directory.getAbsolutePath();
// makeExcel();
// Scanner scanner = new Scanner(System.in);
//
// String in = scanner.nextLine();
String path = "C:\\Users\\王雪峰\\Desktop\\csvtest.csv";
// readcsv(path);
try {
makeExcel("csv表格", path, "E:\\123\\z.xls");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void readcsv(String path){
try {
BufferedReader reader = new BufferedReader(new FileReader(path));//换成你的文件名
// String headers = reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
// String[] header = null;
// if(headers != null){
// header = headers.split(",");
// for (String spl : header) {
// System.out.println(spl);
// }
// }
String line = null;
while((line=reader.readLine())!=null){
String item[] = line.split(",");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
for (String s : item) {
System.out.println(s);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
//读取文件的表头
public static String[] getHeader(String path) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(path));//换成你的文件名
String headers = reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
String[] header = null;
if(headers != null){
header = headers.split(",");
for (String spl : header) {
// System.out.println(spl);
}
}
return header;
}
/**
* 将数据写入到excel中
*/
public static void makeExcel(String sheetName,String csvPath,String exPath) throws IOException {
//第一步,创建一个workbook对应一个excel文件
HSSFWorkbook workbook = new HSSFWorkbook();
//第二部,在workbook中创建一个sheet对应excel中的sheet
HSSFSheet sheet = workbook.createSheet(sheetName);
//第三部,在sheet表中添加表头第0行,老版本的poi对sheet的行列有限制
HSSFRow row = sheet.createRow(0);
//获取文件表头
String[] header = getHeader(csvPath);
//第四步,创建单元格,设置表头
// HSSFCell cell = row.createCell(0);
// cell.setCellValue("省份");
// cell = row.createCell(1);
// cell.setCellValue("职场代码柜面代码");
// cell = row.createCell(2);
// cell.setCellValue("设备评分");
// cell = row.createCell(3);
// cell.setCellValue("服务评分");
// cell = row.createCell(4);
// cell.setCellValue("系统评分");
// cell = row.createCell(5);
// cell.setCellValue("网络评分");
// cell = row.createCell(6);
// cell.setCellValue("更多反馈");
// cell = row.createCell(7);
// cell.setCellValue("评价时间");
for (int i = 0; i < header.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(header[i]);
}
DataInputStream in = new DataInputStream(new FileInputStream(csvPath));
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "utf-8"));
//BufferedReader reader = new BufferedReader(new FileReader("D:\\Downloads\\1.csv"));//换成你的文件名
reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
String line = null;
String[] split = null;
List<String> list = new ArrayList<String>();
for (int i = 0; (line = reader.readLine()) != null; i++) {
split = line.split("\r\n");
// strings[i][i] = split[i];
// for (String s : split) {
// System.out.println(s);
// String[] split1 = s.split(",");
// }
for (int j = 0; j < split.length; j++) {
String s = split[j];
if(s != null && !"".equals(s)){
list.add(s);
}
// System.out.println(split[j]);
}
// String[] item = line.split(",");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
// for (String s : item) {
// list.add(s);
// }
// for (int k =0;k < item.length;k++){
// HSSFRow row1 = sheet.createRow(k + 1);
// HSSFCell cell = row1.createCell(k);
// cell.setCellValue(item[k]);
// System.out.println("所有数据"+item[k]);
// }
}
for (int i = 0;i < list.size();i++){
HSSFRow row1 = sheet.createRow(i + 1);
String s = list.get(i);
String[] strings = s.split(",");
for (int j = 0; j < strings.length; j++) {
row1.createCell(j).setCellValue(strings[j]);
}
}
// for (int i = 0;i < list.size();i++){
// HSSFRow row1 = sheet.createRow(i + 1);
// row1.createCell(0).setCellValue(list.get(i));
row1.createCell(1).setCellValue(list.get(i));
row1.createCell(2).setCellValue(list.get(i));
row1.createCell(3).setCellValue(list.get(i));
// System.out.println(list.get(i));
// }
// for (int k =0;k < item.length;k++){
// HSSFRow row1 = sheet.createRow(k + 1);
// HSSFCell cell = row1.createCell(k);
// cell.setCellValue(item[k]);
// System.out.println("所有数据"+item[k]);
// }
//将文件保存到指定的位置
FileOutputStream fos = new FileOutputStream(exPath);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fos,"utf-8"));
workbook.write(fos);
System.out.println("写入成功");
fos.close();
reader.close();
}
}
文本转excel
最新推荐文章于 2023-02-22 22:54:57 发布