txt转换java_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 xlsList = getTxtInfos();

// 将List以xls保存

TransToExcel(xlsList);

}

private static ArrayList getTxtInfos() {

ArrayList txtFileList = new ArrayList();

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 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值