Java实现将txt文件转成xls文件
来源:互联网 发布:什么手机壳防摔 知乎 编辑:程序博客网 时间:2024/05/16 03:56
最近项目用到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; } }
阅读全文
1 0
- Java实现将txt文件转成xls文件
- java工具---将txt文件转成xml格式的文件
- 将txt/xls文件读入内表
- java 读取txt文件和xls文件
- 存储过程将.txt.xls文件数据导入数据库表格
- 存储过程将.txt.xls文件数据导入数据库表格
- .xls .txt文件生成下载
- 怎么用PDF转换器将PDF文件转成txt
- io流将txt文件转成map集合的形式
- iava 实现将office 文件转成pdf
- java实现xls/csv文件导入
- nc文件转成txt文本文件
- 将java转成exe文件的方法
- java将byte[]转成文件的问题
- java解析xls文件
- java 解析xls文件
- Java读取xls文件
- JAVA导出xls文件
- 日期查询:把easyUI的日期格式转成yyyy-MM-dd格式
- HTML5标签构成
- tar包的解压 和压缩
- 论文解读:Multi-view Clustering via Joint Nonnegative Matrix Factorization
- Linux下vsftpd安装配置与使用
- Java实现将txt文件转成xls文件
- Objective-C学习总结#1——函数与变量的语法特性
- SpringBoot应用部署到Tomcat中无法启动问题
- tensorboard可视化使用
- MYSQL:指定时间删除过期数据
- linux操作数据库
- 在Ubuntu14.04上快速部署OpenStack
- 2.CyclicBarrier简介
- LoadRunner中文乱码