Java实现将txt文件转成xls文件的方法

最近项目用到txt文件和xls文件的转换,这里记录一下具体的思路。

下面利用java代码实现txt转xls,这里要使用到jxl.jar包,这个包是通过java来操作Excel表格的工具类库。

该jar包支持字体、数字、日期操作,能够修饰单元格属性,还能够支持图像和图表,基本上已经满足我们的日常操作,最主要的是这套API是纯Java实现的,在Windows和Linux操作系统下,它都可以正确的处理Excel文件。

具体实现代码如下:

package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class txtToxls {
    //txt文本路径
    static String txtFilePath = "D:\\Super_PLU.txt";
    //xls路径
    static String xlsFilePath = "D:\\Super_PLU.xls";
    //每一列的列名
    static String c1Name, c2Name, c3Name, c4Name, c5Name, c6Name, c7Name, c8Name;

    public static void main(String args[]) {
      // 将txt文件进行解析,保存为List
      ArrayList<TxtFile> xlsList = getTxtInfos();
      // 将List以xls保存
      TransToExcel(xlsList);
    }

    private static ArrayList<TxtFile> getTxtInfos() {
      ArrayList<TxtFile> txtFileList = new ArrayList<TxtFile>();
      BufferedReader bufferedReader = null;
      try {
        // 这里注意指定文件的编码格式
        bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(txtFilePath), "gbk"));
        String element = null;
        int index = 0;
        while ((element = bufferedReader.readLine()) != null) {
          //如果是此行为空,则跳过
          if(element.trim().equals("")){
            continue;
          }
          //第一行作为每列名称
          String[] value = element.trim().split(",");
          if (index == 0) {
            c1Name = value[0];
            c2Name = value[1];
            c3Name = value[2];
            c4Name = value[3];
            c5Name = value[4];
            c6Name = value[5];
            c7Name = value[6];
            c8Name = value[7];
            index = 1;
            continue;
          }
          //从第二行开始读取每行内容,以TxtFile形式存储
          TxtFile txtFile = new TxtFile(Integer.parseInt(value[0]), Integer.parseInt(value[1]), value[2], value[3], value[4], Integer.parseInt(value[5]), Integer.parseInt(value[6]), Integer.parseInt(value[7]));
          txtFileList.add(txtFile);
        }
      } catch (Exception e) {
        e.printStackTrace();
      } finally {
        if (bufferedReader != null) {
          try {
            bufferedReader.close();
          } catch (IOException e) {
            e.printStackTrace();
          }
        }
      }
      return txtFileList;
    }

  private static void TransToExcel(ArrayList<TxtFile> txtFileList) {
    WritableWorkbook book = null;
    try {
      // 创建一个xls文件
      book = Workbook.createWorkbook(new File(xlsFilePath));
      // 生成名为'商品信息'的工作表,这里参数0表示第一页
      WritableSheet sheet = book.createSheet("商品信息", 0);
      // 在Label对象为每一列添加列名,即每一列的第一行
      Label label1 = new Label(0, 0, c1Name);
      Label label2 = new Label(1, 0, c2Name);
      Label label3 = new Label(2, 0, c3Name);
      Label label4 = new Label(3, 0, c4Name);
      Label label5 = new Label(4, 0, c5Name);
      Label label6 = new Label(5, 0, c6Name);
      Label label7 = new Label(6, 0, c7Name);
      Label label8 = new Label(7, 0, c8Name);
      // 将定义好列名添加到工作表中
      sheet.addCell(label1);
      sheet.addCell(label2);
      sheet.addCell(label3);
      sheet.addCell(label4);
      sheet.addCell(label5);
      sheet.addCell(label6);
      sheet.addCell(label7);
      sheet.addCell(label8);

      /*
       * 遍历传进来的List,把每一行的内容再顺序加入到工作表中,
       * 在生成数字单元格时, 必须使用Number的完整包路径
       */
      for (int i = 0; i < txtFileList.size(); i++) {
        TxtFile p = txtFileList.get(i);
        jxl.write.Number item_code = new jxl.write.Number(0, (i+1), p.item_code);
        jxl.write.Number plu = new jxl.write.Number(1, (i+1), p.plu);
        Label commodity = new Label(2, (i+1), p.commodity);
        Label ingredient= new Label(3, (i+1), p.ingredient);
        Label special = new Label(4, (i+1), p.special);
        jxl.write.Number use_by_date = new jxl.write.Number(5, (i+1), p.use_by_date);
        jxl.write.Number use_by_date_print = new jxl.write.Number(6, (i+1), p.use_by_date_print);
        jxl.write.Number packge_by_date_print = new jxl.write.Number(7, (i+1), p.packge_by_date_print);

        sheet.addCell(item_code);
        sheet.addCell(plu);
        sheet.addCell(commodity);
        sheet.addCell(ingredient);
        sheet.addCell(special);
        sheet.addCell(use_by_date);
        sheet.addCell(use_by_date_print);
        sheet.addCell(packge_by_date_print);
      }
      book.write();
      book.close();
    } catch (Exception e) {
      e.printStackTrace();;
    }
  }
}
  // txt文件model类
  class TxtFile {
    int item_code;
    int plu;
    String commodity;
    String ingredient;
    String special;
    int use_by_date;
    int use_by_date_print;
    int packge_by_date_print;

    public TxtFile(int item_code, int plu, String commodity, String ingredient, String special,int use_by_date, int use_by_date_print, int packge_by_date_print) {
      this.item_code = item_code;
      this.plu = plu;
      this.commodity = commodity;
      this.ingredient = ingredient;
      this.special = special;
      this.use_by_date = use_by_date;
      this.use_by_date_print = use_by_date_print;
      this.packge_by_date_print = packge_by_date_print;
    }
  }

以上这篇Java实现将txt文件转成xls文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java创建txt文件并存入内容

    本文实例为大家分享了java创建txt文件并存入内容的具体代码,供大家参考,具体内容如下 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter

  • java简单实现用语音读txt文档方法总结

    最近比较无聊,随便翻着博客,无意中看到了有的人用VBS读文本内容,也就是读几句中文,emmm,挺有趣的,实现也很简单,都不需要安装什么环境,直接新建txt文件,输入一些简单的vbs读文本的代码,然后将新建的文件后缀改为.vbs,然后双击一下就可以有效果了.... 于是我就想啊,java行不行呢?查了一些资料,还真的行,我就将我试验的过程说一下,就当作娱乐娱乐! 1.依赖 随便新建一个maven项目,导入依赖 <dependency> <groupId>com.hynnet</

  • 将Java程序的输出结果写到txt文件中的方法

    1.将输出结果输出到txt文件 步骤一: 头文件 import java.io.FileOutputStream;   import java.io.PrintStream; 可能还会提醒抛出错误,于是import java.io.FileNotFoundException; 步骤二: PrintStream ps = new PrintStream("e:/log.txt"); // 创建一个打印输出流,输出的目标是:E盘的log.txt文件 步骤三: System.setOut(p

  • Java实现批量修改txt文件名称的方法示例

    本文实例讲述了Java实现批量修改txt文件名称的方法.分享给大家供大家参考,具体如下: 最近在做特征选择的实验时,需要批量修改一下文件名称,在这里做一下记录. package com.cqu.experiment; import java.io.File; /** * @author 作者: E-mail:@126.com * @version 创建时间:2016年12月26日 下午3:02:01 类说明 */ public class RenameTxt { public static vo

  • java 实现将一个string保存到txt文档中

    实例如下所示: private static String savefile = "E:\\test.txt"; private static void saveAsFileWriter(String content) { FileWriter fwriter = null; try { fwriter = new FileWriter(savefile); fwriter.write(content); } catch (IOException ex) { ex.printStack

  • 用java实现在txt文本中写数据和读数据的方法

    向文本中写数据,一般这些数据我们用来做自动化测试.通过我们制定的一些生成数据的规则,能够快速写数据到文本中. 下面是写数据到txt文本(当然我们可以根据自己的需要写到doc.docx.xlx.xlsx等格式的文件中)的代码: import java.io.File; import java.io.FileWriter; import java.io.IOException; public class Test { public static void main(String[] args) {

  • Java实现将txt文件转成xls文件的方法

    最近项目用到txt文件和xls文件的转换,这里记录一下具体的思路. 下面利用java代码实现txt转xls,这里要使用到jxl.jar包,这个包是通过java来操作Excel表格的工具类库. 该jar包支持字体.数字.日期操作,能够修饰单元格属性,还能够支持图像和图表,基本上已经满足我们的日常操作,最主要的是这套API是纯Java实现的,在Windows和Linux操作系统下,它都可以正确的处理Excel文件. 具体实现代码如下: package test; import java.io.Buf

  • Java实现把文件压缩成zip文件的示例代码

    实现代码 ackage org.fh.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 说明:java压缩成zip * 作者:FH Admin * from:fhadmin.cn */ public class Fi

  • php将图片文件转换成二进制输出的方法

    本文实例讲述了php将图片文件转换成二进制输出的方法.分享给大家供大家参考.具体实现方法如下: header( "Content-type: image/jpeg"); $PSize = filesize('1.jpg'); $picturedata = fread(fopen('1.jpg', "r"), $PSize); echo $picturedata; 就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别. 这里需要注意的

  • python 自动化将markdown文件转成html文件的方法

    一.背景 我们项目开发人员写的文档都是markdown文件.对于其它组的同学要进行阅读不是很方便.每次编辑完markdown文件,我都是用软件将md文件转成html文件.刚开始转的时候,还没啥,转得次数多了,就觉得不能继续这样下去了.作为一名开发人员,还是让机器去做这些琐碎的事情吧.故写了两个脚本将md文件转成html文件,并将其放置在web服务器下,方便其他人员阅读. 主要有两个脚本和一个定时任务: •一个python脚本,主要将md文件转成html文件: •一个shell脚本,主要用于管理逻

  • python将图片文件转换成base64编码的方法

    本文实例讲述了python将图片文件转换成base64编码的方法.分享给大家供大家参考.具体实现方法如下: import base64 f=open(r'c:\jb51.gif','rb') #二进制方式打开图文件 ls_f=base64.b64encode(f.read()) #读取文件内容,转换为base64编码 f.close() 调用方法如下: 复制代码 代码如下: <img src="R0lGODlh1wBOAPcAAAAAAP///7a4u+jq7bG1ucrN0N7g4tLU

  • 用asp实现把文件打包成Xml文件包,带解包的ASP工具附下载

    把文件打包成Xml文件包,带解包的ASP工具! 把网站源码全部打包到Xml文件里面,生成 updata.xml 文件,把xml文件上传到空间里面 然后通过 install.asp文件将文件全部释放出来. 就和z-blog的 自动安装包一样的功能呵呵. 代码是落伍的一位兄弟写的,不过代码好像有错误,这个是我参考他的 修改过了,可以正常运行!~~ 此代码可以应用到 asp程序的 自动升级服务上面.具体怎么来实现,欢迎探讨!~~ 就在下面回帖探讨!~~~ 不用设定打包目录版,需要设定打包目录版 这两个

  • C#实现将javascript文件编译成dll文件的方法

    本文实例讲述了C#实现将javascript文件编译成dll文件的方法.分享给大家供大家参考,具体如下: 第一步:新建项目 添加js文件 写个测试Function (JScript.js) 单击JS文件属性.将 生成操作 改成嵌入的资源 第二步:在项目文件中添加一个类文件  该 类继承System.Web.UI.WebControl类 并重写控件预呈现的方法 代码如下: public class ClientScript:System.Web.UI.WebControls.WebControl

  • 利用python将xml文件解析成html文件的实现方法

    功能就是题目所述,我的python2.7,装在windows环境,我使用的开发工具是wingide 6.0 1.首先是我设计的简单的一个xml文件,也就是用来解析的源文件 下面是这个文件website.xml内容: <website> <page name="index" title="fuckyou"> <h1>welcome to</h1> <p>this is a moment</p> &

  • linux中把.c的文件编译成.so文件

    linux中共享库以so为后缀(shared object),与Windows下的DLL类似,是在程序运行时动态连接.多个进程可以连接同一个共享库. 以下以编译mylib.c为例讲如何编译.so文件. 首先,编译mylib.c: $gcc -c -fPIC -o mylib.o mylib.c -c表示只编译(compile),而不连接.-o选项用于说明输出(output)文件名.gcc将生成一个目标(object)文件mylib.o. 注意-fPIC选项.PIC指Position Indepe

  • Python中py文件转换成exe可执行文件的方法

    一.背景 今天闲着无事,写了一个小小的Python脚本程序,然后给同学炫耀的时候,发现每次都得拉着其他人过来看着自己的电脑屏幕,感觉不是很爽,然后我想着网上肯定有关于Python脚本转换成可执行文件的操作,事不宜迟,我就开始了问度娘,各种寻找资料,发现网上的资料太多了,有一些比较老了,适合Python2.x系列,在现在Python3流行的时代,我们当然是直接无视,但是各种方法凌乱的很,各种教程也是或全或缺的,鄙人也捣鼓了可久,后来发现一种方法挺多人用的,在自己的程序成功打包成执行文件并在其他人电

随机推荐