package com.jt.www.controler;
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import java.awt.Font;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
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 org.apache.poi.poifs.filesystem.POIFSFileSystem;
import com.jt.www.databean.XlsDataBean;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
/**
*
*
* @author Feng
* 数据导入解析 main
*
*/
public class ImportDataClientHandler {
private JFrame frame;
private JTextField textField;
private String filePath="";
/**
* 启动Appliction
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ImportDataClientHandler window = new ImportDataClientHandler();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* 创建Appliction
*/
public ImportDataClientHandler() {
initialize();
}
/**
* 初始化框架内容。
*/
private List<XlsDataBean> initialize() {
final List<XlsDataBean> list=new ArrayList<XlsDataBean>();
frame = new JFrame();
frame.setResizable(false);
frame.setTitle("\u6570\u636E\u5BFC\u5165");
frame.getContentPane().setFont(new Font("SimSun", Font.PLAIN, 12));
frame.setBounds(100, 100, 486, 180);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JLabel label = new JLabel("\u5BFC\u5165\u6570\u636E");
label.setFont(new Font("宋体", Font.PLAIN, 12));
label.setBounds(32, 64, 54, 15);
frame.getContentPane().add(label);
textField = new JTextField();
textField.setText("点击添加文件");
textField.setForeground(Color.LIGHT_GRAY);
textField.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
// JOptionPane.showMessageDialog(null,"您按下了查询按 钮");
ChooseFileType my=new ChooseFileType();
JFileChooser fileChooser = new JFileChooser("C:\\");
fileChooser.setFileFilter(my);
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int returnVal = fileChooser.showOpenDialog(fileChooser);
if (returnVal == JFileChooser.APPROVE_OPTION) {
filePath = fileChooser.getSelectedFile().getAbsolutePath();// 这个就是你选择的文件夹的路径
System.out.println(filePath);
textField.setText(filePath);
}
}
});
textField.setBounds(84, 61, 200, 21);
frame.getContentPane().add(textField);
textField.setColumns(10);
JButton btnNewButton = new JButton("确定");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(textField.getText().equals("点击添加文件")||textField.getText()==null){
JOptionPane.showMessageDialog(null,"没有文件!");
}
if(filePath!=""){
//=============================Workbook 方式======================================
/* List<XlsDataBean> arr=new ArrayList<XlsDataBean>();
try {
Workbook wkb=Workbook.getWorkbook(new File(filePath));
Sheet sheet=wkb.getSheet(0);
System.out.println(sheet.getName()+","+sheet.getRows()+","+sheet.getColumns());
for(int i=0;i<sheet.getRows();i++){
XlsDataBean xs=new XlsDataBean();
for(int j=0;j<sheet.getColumns();j++){
Cell cl=sheet.getCell(j,i);
Object data="";
if(!cl.getContents().equals("")||!cl.getContents().isEmpty()){
data=cl.getContents();
}
if(0==j){
xs.setCompany(data+"");
}
if(1==j){
xs.setMassage(data+"");
}
if(2==j){
xs.setOther(data+"");
}
if(3==j){
xs.setCompanyzw(data+"");
}
if(4==j){
xs.setAdress1(data+"");
}
}
arr.add(xs);
}
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
int num=0;
File f=new File("C:\\Users\\User\\Desktop\\out.txt");
PrintStream pf=null;
try {
if(!f.exists()){
f.createNewFile();
}
pf =new PrintStream(f);
//System.setOut(pf);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(pf!=null){
try {
pf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
for(XlsDataBean date:arr){
System.out.println(date.getCompany()+","+date.getMassage());
}
*/
//=================================POI 方式==========================================
String datevalue="";
POIFSFileSystem fs=null;
HSSFCell cell = null;
FileInputStream file=null;
try {
file=new FileInputStream(filePath);
fs = new POIFSFileSystem(file);
HSSFWorkbook wwb = new HSSFWorkbook(fs);
HSSFSheet sheet = wwb.getSheetAt(0);
for(int rowIndex=0;rowIndex<=sheet.getLastRowNum();rowIndex++){
XlsDataBean xb=new XlsDataBean();
HSSFRow row = sheet.getRow(rowIndex);
if (row == null)continue;
for(short columnIndex=0;columnIndex<=row.getLastCellNum();columnIndex++){
cell = row.getCell(columnIndex);
if(cell!=null){
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
/*
* 不同单元格类型取值
*/
switch(cell.getCellType()){
case HSSFCell.CELL_TYPE_STRING:
datevalue=cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
datevalue=cell.getCellNum()+"";
break;
case HSSFCell.CELL_TYPE_FORMULA:
// 导入时如果为公式生成的数据则无值
if (!cell.getStringCellValue().equals("")) {
datevalue = cell.getStringCellValue();
} else {
datevalue = cell.getNumericCellValue() + "";
}
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
datevalue = (cell.getBooleanCellValue() == true ? "Y":"N");
break;
case HSSFCell.CELL_TYPE_BLANK:
break;
case HSSFCell.CELL_TYPE_ERROR:
datevalue = "";
break;
default:
datevalue = "";
}
}
/*
* 根据单元格内容赋值
*/
switch(columnIndex){
case 0:
xb.setCompany(datevalue);
break;
case 1:
xb.setMassage(datevalue);
break;
case 2:
xb.setName(datevalue);
break;
case 3:
xb.setOther(datevalue);
break;
case 4:
xb.setCompanyzw(datevalue);
break;
case 5:
xb.setAdress1(datevalue);
break;
}
}
list.add(xb);
}
System.out.println(sheet.getLastRowNum()+"--");
for(XlsDataBean date:list){
System.out.println(date.getCompany()+","+date.getMassage()+","+date.getName());
}
File f=new File("F:"+File.separator+"outdata.txt");
if(!f.exists()){
f.createNewFile();
}
BufferedOutputStream bos=new BufferedOutputStream (new FileOutputStream(f));
DataOutputStream bs=new DataOutputStream(bos);
for(XlsDataBean date:list){
String bsdata=date.getCompany()+","+date.getMassage()+","+date.getName();
bs.flush();
bs.writeUTF(bsdata+"\r\n");
}
/* HSSFRow row = sheet.getRow(0);
HSSFCell ccell = row.getCell((short) 0);
String mssg = ccell.getStringCellValue();
System.out.println(mssg);*/
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(file!=null){
try {
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
});
btnNewButton.setBounds(294, 60, 93, 23);
frame.getContentPane().add(btnNewButton);
return list;
}
}
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import java.awt.Font;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
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 org.apache.poi.poifs.filesystem.POIFSFileSystem;
import com.jt.www.databean.XlsDataBean;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
/**
*
*
* @author Feng
* 数据导入解析 main
*
*/
public class ImportDataClientHandler {
private JFrame frame;
private JTextField textField;
private String filePath="";
/**
* 启动Appliction
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ImportDataClientHandler window = new ImportDataClientHandler();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* 创建Appliction
*/
public ImportDataClientHandler() {
initialize();
}
/**
* 初始化框架内容。
*/
private List<XlsDataBean> initialize() {
final List<XlsDataBean> list=new ArrayList<XlsDataBean>();
frame = new JFrame();
frame.setResizable(false);
frame.setTitle("\u6570\u636E\u5BFC\u5165");
frame.getContentPane().setFont(new Font("SimSun", Font.PLAIN, 12));
frame.setBounds(100, 100, 486, 180);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JLabel label = new JLabel("\u5BFC\u5165\u6570\u636E");
label.setFont(new Font("宋体", Font.PLAIN, 12));
label.setBounds(32, 64, 54, 15);
frame.getContentPane().add(label);
textField = new JTextField();
textField.setText("点击添加文件");
textField.setForeground(Color.LIGHT_GRAY);
textField.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
// JOptionPane.showMessageDialog(null,"您按下了查询按 钮");
ChooseFileType my=new ChooseFileType();
JFileChooser fileChooser = new JFileChooser("C:\\");
fileChooser.setFileFilter(my);
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int returnVal = fileChooser.showOpenDialog(fileChooser);
if (returnVal == JFileChooser.APPROVE_OPTION) {
filePath = fileChooser.getSelectedFile().getAbsolutePath();// 这个就是你选择的文件夹的路径
System.out.println(filePath);
textField.setText(filePath);
}
}
});
textField.setBounds(84, 61, 200, 21);
frame.getContentPane().add(textField);
textField.setColumns(10);
JButton btnNewButton = new JButton("确定");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(textField.getText().equals("点击添加文件")||textField.getText()==null){
JOptionPane.showMessageDialog(null,"没有文件!");
}
if(filePath!=""){
//=============================Workbook 方式======================================
/* List<XlsDataBean> arr=new ArrayList<XlsDataBean>();
try {
Workbook wkb=Workbook.getWorkbook(new File(filePath));
Sheet sheet=wkb.getSheet(0);
System.out.println(sheet.getName()+","+sheet.getRows()+","+sheet.getColumns());
for(int i=0;i<sheet.getRows();i++){
XlsDataBean xs=new XlsDataBean();
for(int j=0;j<sheet.getColumns();j++){
Cell cl=sheet.getCell(j,i);
Object data="";
if(!cl.getContents().equals("")||!cl.getContents().isEmpty()){
data=cl.getContents();
}
if(0==j){
xs.setCompany(data+"");
}
if(1==j){
xs.setMassage(data+"");
}
if(2==j){
xs.setOther(data+"");
}
if(3==j){
xs.setCompanyzw(data+"");
}
if(4==j){
xs.setAdress1(data+"");
}
}
arr.add(xs);
}
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
int num=0;
File f=new File("C:\\Users\\User\\Desktop\\out.txt");
PrintStream pf=null;
try {
if(!f.exists()){
f.createNewFile();
}
pf =new PrintStream(f);
//System.setOut(pf);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(pf!=null){
try {
pf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
for(XlsDataBean date:arr){
System.out.println(date.getCompany()+","+date.getMassage());
}
*/
//=================================POI 方式==========================================
String datevalue="";
POIFSFileSystem fs=null;
HSSFCell cell = null;
FileInputStream file=null;
try {
file=new FileInputStream(filePath);
fs = new POIFSFileSystem(file);
HSSFWorkbook wwb = new HSSFWorkbook(fs);
HSSFSheet sheet = wwb.getSheetAt(0);
for(int rowIndex=0;rowIndex<=sheet.getLastRowNum();rowIndex++){
XlsDataBean xb=new XlsDataBean();
HSSFRow row = sheet.getRow(rowIndex);
if (row == null)continue;
for(short columnIndex=0;columnIndex<=row.getLastCellNum();columnIndex++){
cell = row.getCell(columnIndex);
if(cell!=null){
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
/*
* 不同单元格类型取值
*/
switch(cell.getCellType()){
case HSSFCell.CELL_TYPE_STRING:
datevalue=cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
datevalue=cell.getCellNum()+"";
break;
case HSSFCell.CELL_TYPE_FORMULA:
// 导入时如果为公式生成的数据则无值
if (!cell.getStringCellValue().equals("")) {
datevalue = cell.getStringCellValue();
} else {
datevalue = cell.getNumericCellValue() + "";
}
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
datevalue = (cell.getBooleanCellValue() == true ? "Y":"N");
break;
case HSSFCell.CELL_TYPE_BLANK:
break;
case HSSFCell.CELL_TYPE_ERROR:
datevalue = "";
break;
default:
datevalue = "";
}
}
/*
* 根据单元格内容赋值
*/
switch(columnIndex){
case 0:
xb.setCompany(datevalue);
break;
case 1:
xb.setMassage(datevalue);
break;
case 2:
xb.setName(datevalue);
break;
case 3:
xb.setOther(datevalue);
break;
case 4:
xb.setCompanyzw(datevalue);
break;
case 5:
xb.setAdress1(datevalue);
break;
}
}
list.add(xb);
}
System.out.println(sheet.getLastRowNum()+"--");
for(XlsDataBean date:list){
System.out.println(date.getCompany()+","+date.getMassage()+","+date.getName());
}
File f=new File("F:"+File.separator+"outdata.txt");
if(!f.exists()){
f.createNewFile();
}
BufferedOutputStream bos=new BufferedOutputStream (new FileOutputStream(f));
DataOutputStream bs=new DataOutputStream(bos);
for(XlsDataBean date:list){
String bsdata=date.getCompany()+","+date.getMassage()+","+date.getName();
bs.flush();
bs.writeUTF(bsdata+"\r\n");
}
/* HSSFRow row = sheet.getRow(0);
HSSFCell ccell = row.getCell((short) 0);
String mssg = ccell.getStringCellValue();
System.out.println(mssg);*/
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(file!=null){
try {
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
});
btnNewButton.setBounds(294, 60, 93, 23);
frame.getContentPane().add(btnNewButton);
return list;
}
}