ftp上下载解析Excel
来源:互联网 发布:公司网络拓扑 编辑:程序博客网 时间:2024/04/28 02:34
最近工作中要用到从ftp上解析Excel,记录一下当前进度
应用jar包 jxl.jar
主要分三步 连接服务器、将目标文件下载到本地、Excel解析
1.连接服务器
// 连接ftp服务器private boolean connectServer(String ip, String user, String password,String path) throws IOException {// server:FTP服务器的IP地址;//user:登录FTP服务器的用户名;//password:登录FTP服务器的用户名的口令;//path:FTP服务器上的 路径try {ftpClient = new FtpClient();ftpClient.openServer(ip);ftpClient.login(user, password);if (path.length() != 0) { // path是ftp服务下主目录的子目录ftpClient.cd(path);}ftpClient.binary(); // 用2进制上传return true;} catch (IOException e) {e.printStackTrace();return false;}}
2.将目标文件下载到本地,要注意ftp的路径和文件名乱码以及本地地址必须存在,另外java project和web project的默认地址也不一致,打成war包放在服务器上的路径和eclipse的路径也不同
// FTP文件下载public void download() throws IOException {TelnetInputStream ftpIn = null;FileOutputStream ftpOut = null;try {boolean b = connectServer(ip, userName, password, savePath);// ftpClient.binary();if (b) {ftpIn = ftpClient.get(fileName); // fileName为FTP服务器上要下载的文件名byte[] buf = new byte[204800];int bufsize = 0;ftpOut = new FileOutputStream("D:" + "temp" + "/" + fileName); // 存放在本地硬盘的物理位置while ((bufsize = ftpIn.read(buf, 0, buf.length)) != -1) {ftpOut.write(buf, 0, bufsize);}System.out.println("download success");}} catch (Exception e) {e.printStackTrace();} finally {if (ftpIn != null) {ftpIn.close();}if (ftpOut != null) {ftpOut.close();}if (ftpClient != null) {ftpClient.closeServer();}}}3.Excel解析,循环按sheet、column、row、cell由大到小解析
public void read() {Workbook workbook = null;try {workbook = Workbook.getWorkbook(new File("D:" + "temp" + "/"+ fileName)); Sheet[] sheets =workbook.getSheets();// for(Sheet sheet :sheets){// System.out.println(sheet.getRows());// }Sheet sheet = workbook.getSheet(0);System.out.println(sheet.getName());System.out.println(sheet.getColumns());System.out.println(sheet.getRows());// }List<String> list = new ArrayList<String>();Cell cell = null;// 就是单个单元格//for (int j = 0; j < sheet.getColumns(); j++) {//StringBuffer sb = new StringBuffer();//for (int i = 0; i < sheet.getRows(); i++) {//cell = sheet.getCell(j, i);//sb.append(cell.getContents());//sb.append(",");// 将单元格的每行内容用逗号隔开//}//list.add(sb.toString());// 将每行的字符串用一个String类型的集合保存。//}for (int j = 0; j < sheet.getRows(); j++) {StringBuffer sb = new StringBuffer();for (int i = 0; i < sheet.getColumns(); i++) {cell = sheet.getCell(i, j);sb.append(cell.getContents());sb.append(",");// 将单元格的每行内容用逗号隔开}list.add(sb.toString());// 将每行的字符串用一个String类型的集合保存。}// 迭代集合查看每行的数据for (String ss : list) {System.out.println(ss);}} catch (BiffException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {workbook.close();}}
- ftp上下载解析Excel
- ftp 自动登录下载解压导入excel
- Excel 上传 解析 生成 下载
- 从服务器上下载excel
- 从服务器上下载excel
- c# Ftp下载程序源码解析
- ftp下载,解析txt文件入库
- jsp如何下载FTP上的文件
- 批量下载FTP上的文件
- wget批量下载FTP上的文件
- ftp上下载apk和系统版本
- jsp如何下载FTP上的文件---ftp协议方式
- jsp如何下载FTP上的文件---ftp协议方式
- jsp如何下载FTP上的文件---ftp协议方式
- ftp Client递归下载ftp上某个文件夹的文件
- FTP下载
- FTP下载
- ftp下载
- HDU2470(Get-Together at Stockholm)
- 基于DNS的负载均衡
- Android及Robotium备忘
- fopen vs fopen64
- ubuntu tftp
- ftp上下载解析Excel
- linux terminal完整快捷键
- 关于TIdTCPClient的几种方法
- 设计模式——剖析观察者模式
- 如果,如果我爱你
- 更新Linux系统内核
- 读数据 写数据 上传 下载文件 整理
- java.lang.NoClassDefFoundError: org/apache/commons/io/output/NullOutputStream
- 如何用linux查看系统信息命令