服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - Java教程 - Java实现将txt文件转成xls文件的方法

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

2021-06-03 11:55Frank_lyn Java教程

今天小编就为大家分享一篇Java实现将txt文件转成xls文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

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

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

具体实现代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/omelon1/article/details/78783851

延伸 · 阅读

精彩推荐
  • Java教程MyBatis 引入映射器的方法

    MyBatis 引入映射器的方法

    本文通过实例代码给大家分享mybatis 引入映射器的方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧...

    LLY1996041811202021-01-06
  • Java教程Mybatis 简介与原理

    Mybatis 简介与原理

    MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 ...

    于亮3202020-09-24
  • Java教程java导出Excel通用方法的实例详解

    java导出Excel通用方法的实例详解

    这篇文章主要介绍了java导出Excel通用方法的实例详解的相关资料,需要的朋友可以参考下...

    johnstrive4272020-11-29
  • Java教程springcloud使用consul作为配置中心

    springcloud使用consul作为配置中心

    这篇文章主要介绍了springcloud使用consul作为配置中心,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    廖文文6012021-05-08
  • Java教程Spring静态代理和动态代理代码详解

    Spring静态代理和动态代理代码详解

    这篇文章主要介绍了Spring静态代理和动态代理代码详解,具有一定参考价值,需要的朋友可以了解下。...

    zhouyeqin10312021-02-22
  • Java教程Java精确抽取网页发布时间

    Java精确抽取网页发布时间

    这篇文章主要为大家详细介绍了Java精确抽取网页发布时间的相关资料,尽量做到精确无误,感兴趣的小伙伴们可以参考一下 ...

    java教程网4882020-05-13
  • Java教程2021 年 Java 开发者生产力报告

    2021 年 Java 开发者生产力报告

    Java 开发工具 JRebel 和 XRebel 的开发商——Perforce 最近公布了其第九份年度全球 Java 开发者生产力报告,该报告基于对 850 多位 Java 开发者的调查而得出。...

    开源中国4352021-02-24
  • Java教程java实现归并排序算法

    java实现归并排序算法

    归并排序:是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 本文我们就来详细的探讨下。 ...

    hebedich5742019-12-15