ftp上下载解析Excel
最近工作中要用到从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相关推荐
- Spring Boot整合EasyExcel(完整版包含上传解析excel和下载模板)
Spring Boot整合EasyExcel(完整版包含上传解析excel和下载模板) 1. 加入依赖 2. 对读取excel内容(批量添加) 3. 模板下载: 1. 加入依赖 <depende ...
- C代码实现从FTP上下载文件
从FTP上下载文件这个功能我早就想实现了,但是苦于百度的文章大多是下载链接,一直没舍得积分下载,这次通过查阅MSDN,将一套下载流程函数摸了一下,写出代码实现从FTP下载文件 环境 VS2015 代码 ...
- python3 ftp下载文件,python实现从ftp上下载文件的实例方法
python从ftp上下载文件的方法: 首先导入ftp模块: 然后使用[chdir]命令切换工作路径: 再使用"self.ftp.nlst()"命令获取目录下的文件: 最后使用&q ...
- python从Route Views Archieve上下载解析.bz2数据包
python从Route Views Archieve上下载解析.bz2数据包 1.下载压缩包 2.解压缩包 3.解析解压缩后文件 #encoding:utf-8 import os import r ...
- 从FTP上下载文件到本地
#region 下载文件/// <summary>/// 从FTP服务器下载文件,指定本地路径和本地文件名,20120817,ylh/// </summary>/// < ...
- java从ftp上下载图片到客户端本地
本例子以servlet为主. 下面是大概思路 publicclassFtpServletextendsHttpServlet{ @Override protectedvoiddoG ...
- ExceL文档2.上传解析Excel文档
控制层方法: @RequestMapping(value = "/parseEXCEL.do", method = RequestMethod.POST) public Strin ...
- Java 下载解析Excel文件 报错:jxl.read.biff.BiffException: Unable to recognize OLE stream
项目开发需要先下载excel文件,然后解析出内容,最后将内容分批次下发给APP端. 在创建Excel的解析实例Workbook时,发现构造函数的入参是InputStream,心中窃喜. public ...
- C# 从FTP上下载指定文件到本机
1 #region 下载 2 private void btnDownload_Click(object sender, EventArgs e) 3 { 4 5 WebClient webClint ...
最新文章
- NC:电缆细菌减少水稻种植土壤中的甲烷排放
- OAuth2 服务器Keycloak中的Realm
- 分类器是如何做检测的?(1)——CascadeClassifier中的detectMultiScale函数解读
- 监控h264视频不能正常解码怎么办
- background 互联网图片_cssbackground-image和layer-background-image的区别
- 什么材料反射热量好_封阳台用什么材料好,封阳台用什么玻璃好
- Ubuntu下配置D-Link路由器进行联网
- ajax点击a load,jQuery:在ajax load()之后运行脚本
- 搞定短视频!批量下载快手视频(附源码)
- 冷峭的 渗透测试入门DVWA教程001:环境搭建
- AspUpload中文手册及语法
- layabox 打印_Layabox 集成指南
- C#向一个Word文件中插入文字与图片
- WIN2003序列号
- 特征值和特征向量的理解
- 使用监听器实现一个统计网站在线人数的示例
- flutter 仿网易云音乐(3)
- Java基础笔记-十五、集合类库(下)
- 家用电器的CCC认证流程
- html封面设计图片手绘大全,本子封面设计手绘素描图片欣赏
热门文章
- 浏览器兼容性测试实践
- 「Python数据分析系列」11.机器学习
- 纠错输出码(Error Correcting Output Code, ECOC)
- 1-LTE Network Architecture: Basic
- 博客园如何美化页面 2020最新!!
- React教程(详细)
- 软件测试工程师澳洲移民,App Store 上的“澳洲公民入籍考试 (2021)”
- 【蓝桥杯国赛真题02】python输出自然数 青少年组蓝桥杯python 国赛比赛真题解析
- 海康威视网络摄像头检测红外激光点的正确配置
- 有向图和无向图的相关概念