【学习笔记】Python网络编程(二)socket处理多个连接
2014-10-17 19:06
821 查看
开发者博客:www.developsearch.com
需要jar包 ,至少要这几种
poi-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
xmlbeans-2.3.0.jar
需要jar包 ,至少要这几种
poi-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
xmlbeans-2.3.0.jar
package com.yiwanj.core.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.LinkedList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; 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.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelUtil { public static void main(String[] args) { File file = new File("D:\\Tomcat 6\\webapps\\export\\upload\\Book1.xlsx"); try { List list = readExcel(file); for (int i = 0; i < list.size(); i++) { List one = (List) list.get(i); System.out.println(one.get(0)); System.out.println(one.get(1)); System.out.println(one.get(2)); System.out.println(one.get(3)); } } catch (IOException e) { e.printStackTrace(); } } /** * 对外提供读取excel 的方法 * */ public static List<List<Object>> readExcel(File file) throws IOException{ String fileName = file.getName(); String extension = fileName.lastIndexOf(".")==-1?"":fileName.substring(fileName.lastIndexOf(".")+1); if("xls".equals(extension)){ return read2003Excel(file); }else if("xlsx".equals(extension)){ return read2007Excel(file); }else{ throw new IOException("不支持的文件类型"); } } /** * 读取 office 2003 excel * @throws IOException * @throws FileNotFoundException */ private static List<List<Object>> read2003Excel(File file) throws IOException{ List<List<Object>> list = new LinkedList<List<Object>>(); HSSFWorkbook hwb = new HSSFWorkbook(new FileInputStream(file)); HSSFSheet sheet = hwb.getSheetAt(0); Object value = null; HSSFRow row = null; HSSFCell cell = null; for(int i = sheet.getFirstRowNum();i<= sheet.getPhysicalNumberOfRows();i++){ row = sheet.getRow(i); if (row == null) { continue; } List<Object> linked = new LinkedList<Object>(); for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) { cell = row.getCell(j); if (cell == null) { continue; } DecimalFormat df = new DecimalFormat("0");// 格式化 number String 字符 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 格式化日期字符串 DecimalFormat nf = new DecimalFormat("0.00");// 格式化数字 switch (cell.getCellType()) { case XSSFCell.CELL_TYPE_STRING: System.out.println(i+"行"+j+" 列 is String type"); value = cell.getStringCellValue(); break; case XSSFCell.CELL_TYPE_NUMERIC: System.out.println(i+"行"+j+" 列 is Number type ; DateFormt:"+cell.getCellStyle().getDataFormatString()); if("@".equals(cell.getCellStyle().getDataFormatString())){ value = df.format(cell.getNumericCellValue()); } else if("General".equals(cell.getCellStyle().getDataFormatString())){ value = nf.format(cell.getNumericCellValue()); }else{ value = sdf.format(HSSFDateUtil.getJavaDate(cell.getNumericCellValue())); } break; case XSSFCell.CELL_TYPE_BOOLEAN: System.out.println(i+"行"+j+" 列 is Boolean type"); value = cell.getBooleanCellValue(); break; case XSSFCell.CELL_TYPE_BLANK: System.out.println(i+"行"+j+" 列 is Blank type"); value = ""; break; default: System.out.println(i+"行"+j+" 列 is default type"); value = cell.toString(); } if (value == null || "".equals(value)) { continue; } linked.add(value); } list.add(linked); } return list; } /** * 读取Office 2007 excel * */ private static List<List<Object>> read2007Excel(File file) throws IOException { List<List<Object>> list = new LinkedList<List<Object>>(); // 构造 XSSFWorkbook 对象,strPath 传入文件路径 XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(file)); // 读取第一章表格内容 XSSFSheet sheet = xwb.getSheetAt(0); Object value = null; XSSFRow row = null; XSSFCell cell = null; for (int i = sheet.getFirstRowNum(); i <= sheet .getPhysicalNumberOfRows(); i++) { row = sheet.getRow(i); if (row == null) { continue; } List<Object> linked = new LinkedList<Object>(); for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) { cell = row.getCell(j); if (cell == null) { continue; } DecimalFormat df = new DecimalFormat("0");// 格式化 number String 字符 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 格式化日期字符串 DecimalFormat nf = new DecimalFormat("0.00");// 格式化数字 switch (cell.getCellType()) { case XSSFCell.CELL_TYPE_STRING: System.out.println(i+"行"+j+" 列 is String type"); value = cell.getStringCellValue(); break; case XSSFCell.CELL_TYPE_NUMERIC: System.out.println(i+"行"+j+" 列 is Number type ; DateFormt:"+cell.getCellStyle().getDataFormatString()); if("@".equals(cell.getCellStyle().getDataFormatString())){ value = df.format(cell.getNumericCellValue()); } else if("General".equals(cell.getCellStyle().getDataFormatString())){ value = nf.format(cell.getNumericCellValue()); }else{ value = sdf.format(HSSFDateUtil.getJavaDate(cell.getNumericCellValue())); } break; case XSSFCell.CELL_TYPE_BOOLEAN: System.out.println(i+"行"+j+" 列 is Boolean type"); value = cell.getBooleanCellValue(); break; case XSSFCell.CELL_TYPE_BLANK: System.out.println(i+"行"+j+" 列 is Blank type"); value = ""; break; default: System.out.println(i+"行"+j+" 列 is default type"); value = cell.toString(); } if (value == null || "".equals(value)) { continue; } linked.add(value); } list.add(linked); } return list; } }
相关文章推荐
- python网络编程学习笔记(二):socket建立网络客户端
- Socket网络编程学习笔记(2):面向连接的Socket
- Socket网络编程学习笔记(4):TCP消息边界处理
- python网络编程学习笔记(三):socket网络服务器
- Socket网络编程学习笔记(2):面向连接的Socket
- python网络编程学习笔记(5):socket的一些补充
- Socket网络编程学习笔记(2):面向连接的Socket
- python网络编程学习笔记(三):socket网络服务器
- 【学习笔记】Python网络编程(四)完善socket模拟ssh协议
- Socket网络编程学习笔记(4):TCP消息边界处理
- python网络编程学习笔记(五):socket的一些补充
- python网络编程学习笔记(3):socket网络服务器
- Socket网络编程学习笔记(4):TCP消息边界处理
- python网络编程学习笔记(5):socket的一些补充
- python网络编程学习笔记(3):socket网络服务器
- python网络编程学习笔记(五):socket的一些补充
- python网络编程学习笔记(二):socket建立网络客户端
- 【学习笔记】Python网络编程(三)利用socket模拟ssh协议
- Python 学习笔记 - socket(粘包及其处理方式)
- python网络编程学习笔记(1)