12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package qh.lqg.utils;
- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * ClassName: ExcelOperater <br/>
- * Function: Excel操作类. <br/>
- * date: 2016年8月7日 上午10:24:23 <br/>
- *
- * @author liuyuqi
- * @version
- * @since JDK 1.7
- */
- public class ExcelOperater {
- private InputStreamReader isr = null;
- private BufferedReader br = null;
- public ExcelOperater(String file) throws FileNotFoundException {
- isr = new InputStreamReader(new FileInputStream(file));
- }
- /**
- * readCSVFile:(解析csv文件 到一个list中 每个单元个为一个String类型记录,每一行为一个list。
- * 再将所有的行放到一个总list中 ). <br/>
- *
- * @author liuyuqi
- * @return
- * @throws IOException
- * @since JDK 1.7
- */
- public List<List<String>> readCSVFile() throws IOException {
- br = new BufferedReader(isr);
- String rec = null;// 一行
- String str;// 一个单元格
- List<List<String>> listFile = new ArrayList<List<String>>();
- try {
- // 读取一行
- while ((rec = br.readLine()) != null) {
- Pattern pCells = Pattern
- .compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,");
- Matcher mCells = pCells.matcher(rec);
- List<String> cells = new ArrayList<String>();// 每行记录一个list
- // 读取每个单元格
- while (mCells.find()) {
- str = mCells.group();
- str = str.replaceAll(
- "(?sm)\"?([^\"]*(\"{2})*[^\"]*)\"?.*,", "$1");
- str = str.replaceAll("(?sm)(\"(\"))", "$2");
- cells.add(str);
- }
- listFile.add(cells);
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (isr != null) {
- isr.close();
- }
- if (br != null) {
- br.close();
- }
- }
- return listFile;
- }
- }
|