首发地址: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 = ; 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 = ; 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=;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, ); // 添加第一个工作表 jxl.write.Label label;
System.out.println("title:"+title.length);
for (int i = ; i < title.length; i++) {
// Label(列号,行号 ,内容 )
label = new jxl.write.Label(i, , title[i]);
sheet.addCell(label);
} //添加内容:
String[] row = { "E", "E", "E" };// excel工作表的的行数据
jxl.write.Label label1;
System.out.println("row:"+row.length);
for(int i =;i<row.length;i++){
label1 = new jxl.write.Label(i, , 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=;//从第三行开始,写到Excel文件中 for (int m = ; m < absdata.size(); m++) {
//每一个文件进行操作,每一个文件里面的内容都放在list中,
List list = new ArrayList();//存放每一个文件的内容
test.readTEXT(list, absdata.get(m).toString());
for (int i = ; i < ; 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;

转载请注明,交流请联系nlp30508@qq.com

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

  1. Java读取、写入、处理Excel文件中的数据(转载)

    原文链接 在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Ex ...

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

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. Python:将爬取的网页数据写入Excel文件中

    Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...

  4. 条形码的应用三-----------从Excel文件中读取条形码

    条形码的应用三------从Excel文件中读取条形码 介绍 上一篇文章,我向大家展示了生成多个条形码并存储到Excel文件中的一个方法.后来我又有了个想法:既然条码插入到excel中了,我可不可以从 ...

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

    效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])    本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   ...

  6. C#可以获取Excel文件中Sheet的名字

    C#可以获取Excel文件中Sheet的名字吗 C#可以获取Excel文件中Sheet的名字吗 我试过WPS的表格可以 可以 要代码么 百度都有 [深圳]Milen(99696619)  14:13: ...

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

    在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如 ...

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

    怎样读取Excel文件中的单元格的内容和颜色 先创建一个Excel文件,在A1和A2中随意输入内容,设置A1的字体颜色为红色,A2的背景为黄色.需要 using Excel = Microsoft.O ...

  9. 从Excel文件中读取内容

    从Excel文件中读取内容 global::System.Web.HttpPostedFileBase file = Request.Files["txtFile"]; strin ...

随机推荐

  1. 语音识别:从 WaveNet 到 Tacotron,再到 RNN-T

    从 WaveNet 到 Tacotron,再到 RNN-T 谷歌再获语音识别新进展:利用序列转导来实现多人语音识别和说话人分类 雷锋网 AI 科技评论按:从 WaveNet 到 Tacotron,再到 ...

  2. NOIP 2009 Hankson 的趣味题

    洛谷 P1072 Hankson 的趣味题 洛谷传送门 JDOJ 1648: [NOIP2009]Hankson的趣味题 T2 JDOJ传送门 Description Hanks 博士是BT (Bio ...

  3. 两个开源的 Spring Boot + Vue 前后端分离项目

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

  4. tornado内置接口调用顺序initialize\prepare...

    一. initialize方法 首先, 该方法是框架预留的一个初始化时加载自定义内容的钩子, 其会在http请求方法之前调用 二. prepare方法 预处理方法, 在执行对应的请求方法之前调用. h ...

  5. shell 脚本 for,while,case 语句详解及案例

    ################for循环语句的结构#############使用for循环语句时,需要指定一个变量及可能的取值列表,针对每个不同的取值重复执行相同的命令序列,直到变量值用完退出循环. ...

  6. 第09组 Beta冲刺(4/5)

    队名:观光队 链接 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 学习 展示GitHub当日代码/文档签入记录 无 接下来的计划 完成短租车,页面美化 还剩下哪些任 ...

  7. Codeforces 652F 解题报告

    题意 有n只蚂蚁在长度为m个格子的环上,环上的格子以逆时针编号,每只蚂蚁每秒往它面向的方向移动一格.如果有两只蚂蚁相撞则相互调换方向,问t秒后每只蚂蚁的位置. 题解 首先通过观察可以发现 蚂蚁相撞产生 ...

  8. apache启动错误 AH00072

    错误描述: make_sock: could not bind to address [::]:443 G:\Apache24\bin>httpd.exe -w -n "Apache2 ...

  9. gitlab 账号

    gitlab 账号 国外版-比较慢 https://gitlab.com/hgnulb 国内版-比较快 https://git.lug.ustc.edu.cn/hglibin github账号 htt ...

  10. 第七节:EF Core调用SQL语句和存储过程

    一. 查询类(FromSql) 1.说明 A. SQL查询必须返回实体的所有属性字段. B. 结果集中的列名必须与属性映射到的列名相匹配. C. SQL查询不能包含关联数据 D. 除Select以为的 ...