批量处理txt文本文件到Excel文件中去----java

首发地址:http://blog.csdn.net/u014737138/article/details/38120403

不多说了 直接看代码:

下面的FileFind类首先是找到文件夹下面所有的txt文件,并且获取他们的绝对路径或者相对路径存放在数组中

public class FileFind {
    @SuppressWarnings("rawtypes")

    /**
     * 利用字符串的.endsWith()来判断后缀名
     * 利用文件类的.listFiles()来获取一个文件夹下所有文件
     *
     * @param path
     * @param data
     * @return
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    private static List getData(String path, List data) {
        try{
            File f = new File(path);
            if (f.isDirectory()) {
                File[] fs = f.listFiles();
                for (int i = 0; i < fs.length; i++) {
                    // 如果该文件夹下面还有文件夹,那么继续往下面去找,递归
                    data = getData(fs[i].getPath(), data);
                }
            } else if (f.getName().endsWith(".txt")) {
                // 匹配文本文件,*.txt
                data.add(f.getName());// 得到相对路径
            }

        }catch(Exception e){
            e.printStackTrace();
        }
        return data;
    }

    /**
     *
     * @param path
     * @param data
     * @return  data  返回文件的绝对路径
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static List getFileAbsolutePath(String path, List data) {
        try{
            File f = new File(path);
            if (f.isDirectory()) {
                File[] fs = f.listFiles();
                for (int i = 0; i < fs.length; i++) {
                    // 如果该文件夹下面还有文件夹,那么继续往下面去找,递归
                    data = getFileAbsolutePath(fs[i].getPath(), data);
                }
            } else if (f.getName().endsWith(".txt")) {
                // 匹配文本文件,*.txt
                data.add(f.getAbsolutePath().toString());// 得到相对路径
//                System.out.println(f.getAbsolutePath());// 得到绝对路径
            }

        }catch(Exception e){
            e.printStackTrace();
        }
        return data;
    }
}

类GetStringByLocation获取文本文件内容,这个案例中只用了,readTEXT函数,按照\t读取字段内容

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class GetStringByLocation {

    /**
     * 按照行读取文本文件的数据,每一行存入到list一维数组中
     *
     * @param list 用来存储读取的数据
     * @param destFile  读取的文件路径
     * @throws Exception  读取文件出错  抛出异常
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public void readTxt(List list, String destFile) throws Exception {
        try{
            BufferedReader reader = new BufferedReader(new FileReader(destFile));
            String line = reader.readLine();

            while (line != null) {
                list.add(line);
                line = reader.readLine();
            }

            reader.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    /**
     *
     * @param list  存放读取的结果,按照每行的数据格式  \t读取每一个字段
     * @param pathName  读取的文本文件路径
     * @throws Exception  抛出异常
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public void readTEXT(List list,String pathName) throws Exception{
        String text = null;
        try
        {
            InputStreamReader read1 = new InputStreamReader(new FileInputStream(pathName));
            BufferedReader br1 = new BufferedReader(read1);
            while((text = br1.readLine())!=null)
            {
                /***相应操作***/
                System.out.println(text);
                String[] ss =text.split("\t");

                for(int j=0;j<ss.length;j++){
                    System.out.println(ss[j]);
                    list.add(ss[j]);
                }

                text = br1.readLine();
            }
            br1.close();
        }
        catch(FileNotFoundException e)
        {
            System.out.println(e);
        }
        catch(IOException e)
        {
            System.out.println(e);
        }
    }

    /**
     * 从文件读取数据
     * @param path 文件路径
     * @return 文件数据
     */
    public static List<String> getFileData(String path)
    {
        List<String> result = new ArrayList<String>();
        FileReader fr = null;
        BufferedReader br = null;

        try
        {
            fr = new FileReader(path);
            br = new BufferedReader(fr);
            String str;

            while((str = br.readLine()) != null)
            {
                result.add(str);
            }
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if(fr != null)
                {
                    fr.close();
                }

                if(br != null)
                {
                    br.close();
                }
            }
            catch(IOException e)
            {
                e.printStackTrace();
            }
        }

        return result;
    }
}

最后就是写入到Excel文件中去的主函数:

public class ExcelForAlibaba {
    @SuppressWarnings("rawtypes")
    public static void main(String[] args)
    {   

        String targetfile = "E:/out.xls";// 输出的excel文件名
        String worksheet = "InfoList";// 输出的excel文件工作表名
        String[] title = { "A", "A", "A" };// excel工作表的标题

        WritableWorkbook workbook;
        try {
            // 创建可写入的Excel工作薄,运行生成的文件在tomcat/bin下
            // workbook = Workbook.createWorkbook(new File("output.xls"));

            OutputStream os = new FileOutputStream(targetfile);
            workbook = Workbook.createWorkbook(os);

            WritableSheet sheet = workbook.createSheet(worksheet, 0); // 添加第一个工作表

            jxl.write.Label label;
            System.out.println("title:"+title.length);
            for (int i = 0; i < title.length; i++) {
                // Label(列号,行号 ,内容 )
                label = new jxl.write.Label(i, 0, title[i]);
                sheet.addCell(label);
            }

            //添加内容:
            String[] row = { "E", "E", "E" };// excel工作表的的行数据
            jxl.write.Label label1;
            System.out.println("row:"+row.length);
            for(int i =0;i<row.length;i++){
                label1 = new jxl.write.Label(i, 1, row[i]);

                sheet.addCell(label1);
            }

            try{
                GetStringByLocation test = new GetStringByLocation();
                FileFind filefind = new FileFind();

                List absdata = new ArrayList();//存放文本文件的绝对路径

                String path = "E:\\DD\DD\\test";//文件夹路径            

                absdata = filefind.getFileAbsolutePath(path, absdata);//获取文本文件的路径集,存放在数组中
                int j=2;//从第三行开始,写到Excel文件中

                for (int m = 0; m < absdata.size(); m++) {
                    //每一个文件进行操作,每一个文件里面的内容都放在list中,
                    List list = new ArrayList();//存放每一个文件的内容
                    test.readTEXT(list, absdata.get(m).toString());
                    for (int i = 0; i < 3; i++) {
                        //i表示第一列,第二列。。。。。。
                        jxl.write.Label labeltemp;
//                        System.out.println(list.get(i).toString());
                        labeltemp = new jxl.write.Label(i, j, list.get(i).toString());
                        sheet.addCell(labeltemp);
                    }

                    j++;//从下一行开始写起
                }

            }catch(Exception e){
                e.printStackTrace();
            }

            workbook.write();
            workbook.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("end");

    }

}

以上代码经过测试完全没有问题。需要导入的包自己弄,需要自己写三个包

package org.txtOperate; GetStringByLocation
package org.file.operate; FileFind
package org.excelTest;man()

需要引用的各种第三方包:在main(0)中

import jxl.*;
import jxl.write.*;
import java.io.*;
import java.io.File.*;
import java.util.*; 

import org.file.operate.FileFind;
import org.txtOperate.GetStringByLocation;

转载请注明,交流请联系[email protected]

批量处理txt文本文件到Excel文件中去----java

时间: 2024-10-10 09:16:23

批量处理txt文本文件到Excel文件中去----java的相关文章

[SAP ABAP开发技术总结]客户端文本文件、Excel文件上传下载

目录导航 声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 客户端文本文件或Excel文件导入与导出... 1 TEXT_CONVERT_XLS_TO_SAP. 1 ALSM_EXCEL_TO_INTERNAL_TABLE. 3 SAP_CONVERT_TO_XLS_FORMAT. 5 客户端文本文件或Excel文件导入与导出 TEXT_CONVERT_XLS_TO_SAP TEXT_CONVERT_XLS_TO_SAP函数可以将

Java读写Excel文件中数据的简便方法

Java开发项目中经常会碰到处理Excel文件中数据的情况,这里通过一个例子来看一下实现方法:从Excel文件orders.xls中读取订单信息,从中找出2010年1月1日(含)之后,并且SELLERID等于18的订单.找到的数据写入order_result.xls文件. Excel文件orders.xls的内容如下: ORDERID CLIENT SELLERID AMOUNT ORDERDATE 1 UJRNP 17 392 2008/11/2 15:28 2 SJCH 6 4802 200

(2) 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?

在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如何用Apache POI在已有的Excel文件中插入一行新的数据.具体代码,请看下面的例子. import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   (三)SSIS的简介   (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介绍一下)   (六)SSIS操作过程(生成Package,用来调用)(下一篇随笔将详细讲解制作Package包的过程,图片太多,篇幅过长,因此本文将直接采用生成的Package包进行

使用原生php将数据库数据导出到excel文件中

最近在工作中遇到一个需求,需要将数据库中的数据导出到excel文件中,并下载excel文件.因为以前没做过,所以就百度了一下, 网上说的大多是使用PHPExcel类来操作excel文件,这还要去下载这个类才能使用,而我只想使用原生的php,不想那么麻烦,好在 也有网友说到关于原生php生成excel文件的方法,其实很简单,下面把我结合网上资料自己实践的代码分享一下. 一般我们这种导数据的操作都是通过用户在网页页面上点击某个按钮触发相应js方法,然后请求php接口来实现的,所以主要有两种 方法来完

java 写入数据到Excel文件中_Demo

=======第一版:基本功能实现======= import com.google.common.collect.Maps; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io

[Python]将Excel文件中的数据导入MySQL

Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已有的数据,还要添加一列,名为“at_company”,值为821. 流程 (1)获取excel文件列表,并根据excel文件名确定之后需要创建的table名: (2)连接mysql (3)创建table (4)插入数据 (5)断开连接 依赖模块 1. xlrd # to read excel fil

读取Excel文件中的单元格的内容和颜色

读取Excel文件中的单元格的内容和颜色 先创建一个Excel文件,在A1和A2中随意输入内容,设置A1的字体颜色为红色,A2的背景为黄色.需要 using Excel = Microsoft.Office.Interop.Excel;或者using Microsoft.Excel; string file = @"E:\test.xls"; //测试文件 Excel.Application excel = null; Excel.Workbook wkb = null; try {

如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?

在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如何用Apache POI在已有的Excel文件中插入一行新的数据.具体代码,请看下面的例子. [java] view plain copy import java.io.File; import java.io.FileInputStream; import java.io.FileNotFound