OpenCSVDemo

2020-03-10  本文已影响0人  Mark_ZSQ
package com.cwind.opencsv;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import au.com.bytecode.opencsv.CSVWriter;

public class OpenCSVDemo {
    public static void main(String[] args){
        try {
            String xlsPath = "RunningMan.xlsx";
            String csvPath = "CSVTest.csv";
            
            OutputStream csv = new FileOutputStream(csvPath);
            //Write the byte order mark.
            csv.write(239);
            csv.write(187);
            csv.write(191);
            PrintWriter fwriter = new PrintWriter(new OutputStreamWriter(csv, "UTF-8"));
            CSVWriter csvWriter = new CSVWriter(fwriter);
            
            File excel = new File(xlsPath);
            FileInputStream fis = new FileInputStream(excel);
            XSSFWorkbook book = new XSSFWorkbook(fis);
            XSSFSheet sheet = book.getSheetAt(0);

            Iterator<Row> itr = sheet.iterator();
            List<String> cellList;
            // Iterating over Excel file in Java
            while (itr.hasNext()) {
                Row row = itr.next();

                cellList = new ArrayList<String>();
                        
                // Iterating over each column of Excel file
                Iterator<Cell> cellIterator = row.cellIterator();
                while (cellIterator.hasNext()) {

                    Cell cell = cellIterator.next();

                    switch (cell.getCellType()) {
                    case Cell.CELL_TYPE_STRING:
                        System.out.print(cell.getStringCellValue() + "\t");
                        break;
                    case Cell.CELL_TYPE_NUMERIC:
                        System.out.print(cell.getNumericCellValue() + "\t");
                        break;
                    case Cell.CELL_TYPE_BOOLEAN:
                        System.out.print(cell.getBooleanCellValue() + "\t");
                        break;
                    default:

                    }
                    cellList.add(cell.getStringCellValue());
                }
                
                System.out.println("");
                String[] array = new String[cellList.size()];
                cellList.toArray(array);
                csvWriter.writeNext(array);
            }
            
            csvWriter.flush();
            csvWriter.close();
            
        }catch(Exception ex){
            ex.printStackTrace();
        }
    
    }
}
上一篇下一篇

猜你喜欢

热点阅读