JAVA实现CSV文件的读取
package util.leetcode;
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.*;
public class CSVReader {
public static void main(String[] args) {
// 对应文件路径
String csvFile = "C:\Users\Desktop\***.csv";
String desXLSFile = csvFile.replace (".csv",".xls");
String line = "";
String cvsSplitBy = ",";
HSSFWorkbook workbook = new HSSFWorkbook ();
//第二部,在workbook中创建一个sheet对应excel中的sheet
HSSFSheet sheet = workbook.createSheet("sheet1");
//第三部,在sheet表中添加表头第0行,老版本的poi对sheet的行列有限制
HSSFRow row = sheet.createRow(0);
try (BufferedReader br = new BufferedReader (new FileReader (csvFile))) {
int currLineNO= 0;
while ((line = br.readLine ()) != null) {
String[] country = line.split (cvsSplitBy);
if (currLineNO == 0){
for (String cellVal: country ) {
//第四步,创建单元格,设置表头
String cellEncodeval = new String (cellVal.getBytes ("utf-8"));
System.out.println ("当前表头为:"+cellEncodeval);
HSSFCell cell = row.createCell(Short.valueOf (currLineNO+""));
cell.setCellValue(cellEncodeval);
currLineNO++;
}
currLineNO = 1;
continue;
}
HSSFRow row1 = sheet.createRow(currLineNO);
for (int i = 0; i < country.length; i++) {
System.out.println ("当前操作元素:行数"+(i+1)+";元素值"+country[i]);
row1.createCell(Short.valueOf (i+"")).setCellValue(country[i]);
}
currLineNO ++;
System.out.println ();
}
} catch (FileNotFoundException e) {
e.printStackTrace ();
} catch (IOException e) {
e.printStackTrace ();
}
File file = new File (desXLSFile);
if (file.exists()) {
file.delete();
}
//将文件保存到指定的位置
try {
file.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream (file);
workbook.write(fileOutputStream);
System.out.println("写入成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}