最近工作中要用到从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相关推荐

  1. Spring Boot整合EasyExcel(完整版包含上传解析excel和下载模板)

    Spring Boot整合EasyExcel(完整版包含上传解析excel和下载模板) 1. 加入依赖 2. 对读取excel内容(批量添加) 3. 模板下载: 1. 加入依赖 <depende ...

  2. C代码实现从FTP上下载文件

    从FTP上下载文件这个功能我早就想实现了,但是苦于百度的文章大多是下载链接,一直没舍得积分下载,这次通过查阅MSDN,将一套下载流程函数摸了一下,写出代码实现从FTP下载文件 环境 VS2015 代码 ...

  3. python3 ftp下载文件,python实现从ftp上下载文件的实例方法

    python从ftp上下载文件的方法: 首先导入ftp模块: 然后使用[chdir]命令切换工作路径: 再使用"self.ftp.nlst()"命令获取目录下的文件: 最后使用&q ...

  4. python从Route Views Archieve上下载解析.bz2数据包

    python从Route Views Archieve上下载解析.bz2数据包 1.下载压缩包 2.解压缩包 3.解析解压缩后文件 #encoding:utf-8 import os import r ...

  5. 从FTP上下载文件到本地

    #region 下载文件/// <summary>/// 从FTP服务器下载文件,指定本地路径和本地文件名,20120817,ylh/// </summary>/// < ...

  6. java从ftp上下载图片到客户端本地

    本例子以servlet为主. 下面是大概思路 publicclassFtpServletextendsHttpServlet{      @Override      protectedvoiddoG ...

  7. ExceL文档2.上传解析Excel文档

    控制层方法: @RequestMapping(value = "/parseEXCEL.do", method = RequestMethod.POST) public Strin ...

  8. Java 下载解析Excel文件 报错:jxl.read.biff.BiffException: Unable to recognize OLE stream

    项目开发需要先下载excel文件,然后解析出内容,最后将内容分批次下发给APP端. 在创建Excel的解析实例Workbook时,发现构造函数的入参是InputStream,心中窃喜. public ...

  9. C# 从FTP上下载指定文件到本机

    1 #region 下载 2 private void btnDownload_Click(object sender, EventArgs e) 3 { 4 5 WebClient webClint ...

最新文章

  1. NC:电缆细菌减少水稻种植土壤中的甲烷排放
  2. OAuth2 服务器Keycloak中的Realm
  3. 分类器是如何做检测的?(1)——CascadeClassifier中的detectMultiScale函数解读
  4. 监控h264视频不能正常解码怎么办
  5. background 互联网图片_cssbackground-image和layer-background-image的区别
  6. 什么材料反射热量好_封阳台用什么材料好,封阳台用什么玻璃好
  7. Ubuntu下配置D-Link路由器进行联网
  8. ajax点击a load,jQuery:在ajax load()之后运行脚本
  9. 搞定短视频!批量下载快手视频(附源码)
  10. 冷峭的 渗透测试入门DVWA教程001:环境搭建
  11. AspUpload中文手册及语法
  12. layabox 打印_Layabox 集成指南
  13. C#向一个Word文件中插入文字与图片
  14. WIN2003序列号
  15. 特征值和特征向量的理解
  16. 使用监听器实现一个统计网站在线人数的示例
  17. flutter 仿网易云音乐(3)
  18. Java基础笔记-十五、集合类库(下)
  19. 家用电器的CCC认证流程
  20. html封面设计图片手绘大全,本子封面设计手绘素描图片欣赏

热门文章

  1. 浏览器兼容性测试实践
  2. 「Python数据分析系列」11.机器学习
  3. 纠错输出码(Error Correcting Output Code, ECOC)
  4. 1-LTE Network Architecture: Basic
  5. 博客园如何美化页面 2020最新!!
  6. React教程(详细)
  7. 软件测试工程师澳洲移民,‎App Store 上的“澳洲公民入籍考试 (2021)”
  8. 【蓝桥杯国赛真题02】python输出自然数 青少年组蓝桥杯python 国赛比赛真题解析
  9. 海康威视网络摄像头检测红外激光点的正确配置
  10. 有向图和无向图的相关概念