67,538
社区成员
发帖
与我相关
我的任务
分享
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.WorkbookSettings;
private static Workbook getWorkbook(String filePath){
try {
// 构建Workbook对象, 只读Workbook对象
// 直接从本地文件创建Workbook
// 从输入流创建Workbook
// 创建只读的Excel工作薄的对象
WorkbookSettings workbookSettings=new WorkbookSettings();
workbookSettings.setEncoding("utf-8"); //关键代码,解决中文乱码 但英文就?
// workbookSettings.setEncoding("gb2312");
// workbookSettings.setEncoding("us-ascii");
// workbookSettings.setEncoding("iso-8859-1");
// workbookSettings.setEncoding("iso-8859-2");
// workbookSettings.setEncoding("iso-8859-9");
// workbookSettings.setEncoding("iso-8859-15");
InputStream is = new FileInputStream(filePath);
// Workbook wb=Workbook.getWorkbook(is, workbookSettings);
return Workbook.getWorkbook(is,workbookSettings);
} catch (Exception e) {
System.out.println("----------------Exception Occured,when read Excel file.");
return null;
}
}
@SuppressWarnings("unchecked")
public static List readExcel(String filePath) {
List datas = null;
rwb=getWorkbook(filePath);
Sheet rs = rwb.getSheet(0);
Cell[] cells = rs.getColumn(15);
datas = new ArrayList();
for (int i = 0;i< cells.length;i++) {
Cell[] cells2=rs.getRow(i);
if (i == 0) {
Map title=wrap(cells2);
title.put(42, "HK$");
title.put(43, "Account");
datas.add(title);
continue;
}
if (filterData(rs.getRow(i))) {
datas.add(wrap(rs.getRow(i)));//数据处理
}
}
rwb.close();
return datas;
}
//包装数据
@SuppressWarnings("unchecked")
private static Map wrap(Cell[] row ){
Map o=new LinkedHashMap();
for(int i=0;i<columnNum;i++){
String c=null;
if(i+1>row.length){
c="";
}else{
c=row[i].getContents();
}
if(i==14&&c!=null&&!c.equals("")){ //第15列显示邮寄地址
System.out.println(c);
}
if(i==38){//第39列显示国家
System.out.println(c);
}
o.put(i,c);
}
return o;
}
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import com.csvreader.CsvReader;
import au.com.bytecode.opencsv.CSVReader;
public class testFile {
public static void main(String[] args) throws Exception {
// testFile.importCsvFile();
testFile.csv2();
// testFile.CSVReaderDemo();
}
private static String filePath = "F:\\26112009-original.csv";
@SuppressWarnings("unchecked")
public static void CSVReaderDemo(){
try {
CsvReader reader = new CsvReader(filePath,',',Charset.forName("UTF-8"));
reader.readHeaders();
String[] headers = reader.getHeaders();
//int headerCount = reader.getHeaderCount();
//int col = reader.getColumnCount();
List list = new ArrayList();
while(reader.readRecord()){
String[] str=reader.getValues();
System.out.println(Arrays.deepToString(str));
// list.add(reader.getValues());
}
Iterator it=list.iterator();
} catch (Exception ex){
ex.printStackTrace();
}
}
public static void csv2() throws Exception{
DataInputStream in = new DataInputStream(new FileInputStream(new File("F:\\26112009-original.csv")));
//讀csv file
String fileType;
fileType="utf-8";
// fileType="gb2312";
// fileType="us-ascii";
// fileType="iso-8859-1";
// fileType="iso-8859-2";
// fileType="iso-8859-9";
// fileType="iso-8859-15";
String responseLine;
BufferedReader bf;
bf = new BufferedReader(new InputStreamReader(in,fileType));
//讀data using BufferedReader fileType 是csv file's format if file is Big5 fileType="Big5" etc...
while ((responseLine = bf.readLine()) != null){
// System.out.println(responseLine);
String str[]=responseLine.split(",");
// System.out.println(str.length);
// for(int i=0;i<str.length;i++){
// System.out.print(str[i]+" ");
//
// }
System.out.print(str[3]+" ");
System.out.print(str[str.length-3]+" ");
System.out.println();
// System.out.println(str[3]);
// System.out.println(str[38]);
}
}
public static void importCsvFile() {
CSVReader csvReader = null;
try {
DataInputStream in = new DataInputStream(new FileInputStream(new File("F:\\26112009-original.csv")));
// csvReader = new CSVReader(new FileReader("F:\\Program\\Tomcat5.5\\webapps\\QSF\\excel\\1260416476676.csv"),',');//importFile为要导入的文本格式逗号分隔的csv文件,提供getXX/setXX方法
csvReader = new CSVReader(new InputStreamReader(in,"utf-8"),',');
if(csvReader != null){
//first row is title, so past
csvReader.readNext();
String[] csvRow = null;//row
while ((csvRow = csvReader.readNext()) != null){
for (int i =0; i<csvRow.length; i++){
String temp = csvRow[i];
if(i==14){
System.out.println(initString(temp));
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static String initString(String str) {
try {
return new String(str.getBytes("UTF-8"),"UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
