用Java实现excel转txt
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class exchange{
public static void main(String[] args) {
// 找到excel文件的路径
String filepath = "e:\\111.xls";
try {
Workbook workbook = Workbook.getWorkbook(new File(filepath));
Sheet sheet = workbook.getSheet(0);
//转成txt要保存的位置以及文件名
File file = new File("e:/1.txt");
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
// j为行数,getCell("列号","行号")
int j = sheet.getRows();
int y = sheet.getColumns();
for (int i = 0; i < j; i++) {
for(int x=0; x<y; x++){
Cell c = sheet.getCell(x, i);
String s = c.getContents();
//每一列用逗号隔开,并且第一列的最前边和最后一列的最后边不加逗号
if(x!=0 && StringUtils.isNotBlank(s))
bw.write(","+s);
else
bw.write(s);
bw.flush();
}
bw.newLine();
bw.flush();
}
System.out.println("写入转换结束");
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意1:Excel文件格式一定要是xls的不能是xlsx的;如果是xlsx后缀的,要另存为xls格式的才能将xls格式的进行转换
注意2:jxl.jar中封装的日期,对年份的读取默认是取后两位的,而月和日是原样输出。如果需要全部显示年份可以在String s = c.getContents();之后加个判断(找到Excel表中日期所在的列,假设日期在Excel表的第二列即x==1,则做如下判断)
if(x == 1){
s = "20"+s;
}
说明1:主要是用了文件操作的输入和输出,以及jxl.jar中封装的获取行和列还有读取日期并输出日期格式的方法
说明2:一般我们配置的jar包或者Maven仓库中是没有jxl.jar这个jar包的,但是转换需要用到所以我们需要自己去添加jar包
如何添加:在所属项目的maven的pom.xml中进行添加依赖,如下:
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.10</version>
</dependency>
添加完依赖之后则update或者install一下maven,maven会自动下载jxl.jar这个jar包的
maven仓库更新完成之后jar包就有了,就可以import了,jxl中封装的getCell(),getContents()等方法就可以使用了。
用Java实现excel转txt的更多相关文章
- java程序转换excel中科学记数法的数据为date类型
今天出于某些原因从mongodb数据库中导出了一些数据,为了更直观的发送给其他人查阅,便使用mongoVUE的导出为excel功能. 但是导出后出现了一个问题,里边有一列存储时间的,存储的是lon ...
- java写入excel文件poi
java写入excel文件 java写入excel文件poi,支持xlsx与xls,没有文件自动创建 package com.utils; import java.io.File; import ja ...
- JAVA实现Excel的读写--jxl
前段时间因为开发网站的需要,研究了一下java实现excel的读写,一般当我们做管理软件时,都需要打印报表,报表如何制作呢?相信一定难为过大家,本篇就为大家揭开它的神秘面纱,学习完半篇,你一定会对报表 ...
- java读写excel文件
近期处理的数据规模比较大,正好又是统计合并的事情,想着借助excel就可以完成了,然后就了解了下java读取excel的事情. 读取的文件主要分两类:xls文件.xlsx文件.xls文件的相关操作用的 ...
- Java处理excel文件
好久好久没写blog了,感觉都生锈了,最近弄了弄java处理excel,特来简单粘贴一下: package excel; import java.io.BufferedInputStream; imp ...
- java导出excel报错:getOutputStream() has already been called for this response
对于java导出excel报错的问题,查了很多都说是在使用完输出流以后调用以下两行代码即可 out.clear(); out = pageContext.pushBody(); 但这也许是页面上输出时 ...
- java, poi, excel
工作需要用java操作Excel,现在网上搜索了一下,决定选取POI包来操作.pom内容如下: <dependency> <groupId>org.apache.poi< ...
- Java读取Excel文件的几种方法
Java读取 Excel 文件的常用开源免费方法有以下几种: 1. JDBC-ODBC Excel Driver 2. jxl.jar 3. jcom.jar 4. poi.jar 简单介绍: 百度文 ...
- JAVA读取EXCEL文件异常Unable to recognize OLE stream
异常: jxl.read.biff.BiffException: Unable to recognize OLE stream at jxl.read.biff.CompoundFile.<in ...
随机推荐
- js——移动端js事件、zepto.js
1. touchstart : 手指放到屏幕上时触发 2. touchmove : 手指在屏幕上滑动时触发 3. touched : 手指离开屏幕时触发 4. touchcancel : 系统取消to ...
- 013 Roman to Integer 罗马数字转整数
给定一个罗马数字,将其转换成整数. 返回的结果要求在 1 到 3999 的范围内. 详见:https://leetcode.com/problems/roman-to-integer/descript ...
- Murano中的角色
Application Publisher - An individual or company that publishes an application to an application cat ...
- Storm概念学习系列之Worker、Task、Executor三者之间的关系
不多说,直接上干货! Worker.Task.Executor三者之间的关系 Storm集群中的一个物理节点启动一个或者多个Worker进程,集群的Topology都是通过这些Worker进程运行的. ...
- 安全性测试入门 (五):Insecure CAPTCHA 验证码绕过
本篇继续对于安全性测试话题,结合DVWA进行研习. Insecure Captcha不安全验证码 1. 验证码到底是怎么一回事 这个Captcha狭义而言就是谷歌提供的一种用户验证服务,全称为:Com ...
- Ubuntu安装LAMP环境(PHP5.6) 以及下载安装phpmyadmin
参考路径: http://blog.nciaer.com/?p=133 修改apache(2.4.18)的web路径时, 需要将 /etc/apache2/sites-available/000def ...
- FormsAuthentication IsAuthenticated一直为false
解决办法: 在Web.Config中添加一下红框的内容
- 移植mavlink协议到STM32详细教程
1准备材料, 首先准备一个带串口的stm32程序(这里选用整点原子的官方串口例程这里自己去找不讲)作者:恒久力行 QQ:624668529,然后去mavlink官网下载mavlink源码,这里重点讲解 ...
- Every ending is just a new beginning.
Every ending is just a new beginning.每次结束都是新的开始.
- 命令行启动mysql服务
在<计算机网络>课程中曾学过net命令,可以用于启动后台服务.在mysql中,net命令用于启动后台服务器进程mysqld,即后台服务. 不过,如果在普通用户模式下net start my ...