用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()等方法就可以使用了。

posted @ 2018-08-03 23:49  初仰  阅读(2092)  评论(0编辑  收藏  举报