如何使用java编写一个从指定的TXT文件每行固定位置抓取数据并生成一个xls表自动保存的程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用java编写一个从指定的TXT文件每行固定位置抓取数据并生成一个xls表自动保存的程序?相关的知识,希望对你有一定的参考价值。

如何使用java编写一个从指定的TXT文件每行固定位置抓取数据并生成一个xls表自动保存的程序?需要实现每天自动抓取TXT文本里指定位置的数据并生成一个.xls报表自动保存起来的.exe程序。求完整的源代码,实现了可以加分哦。

参考技术A 使用输入流读取每一行并保存在list中,循环遍历数组使用String的一些方法去截取指定位置的数据,然后创建xls文件,读取工作簿写入数据就行了。然后就是把java程序打包,这个你可以在网上下载工具实现的,推荐exe4j。附上xls文件操作,加入file已经创建好了,如果不行命名冲突,可以使用包含时间戳的文件名:需要引入jxl.jar包,你可以网上下一个
/**下面是向xls写入内容的核心代码**/
//构造Workbook(工作薄)对象
Workbook wb = Workbook.getWorkbook(file);
Sheet sheet = wb.getSheet(0);//获取第一个工作表
//将遍历list读取指定数据写入,假如存放在array中
for(int i=0;i<array.length;i++)//假如数据全部写入第一行的不同单元格
//获取第一行的单元格指定列的单元格

Cell c = sheet.getRow(0)[i];
//设置label覆盖原单元的类容

jxl.write.Label lbl = new jxl.write.Label(0, i, array[i]);
lbl.setCellFormat(c.getCellFormat());
sheet.addCell(lbl);//将改过的单元格保存到sheet


wb.write();//将修改保存到workbook --》一定要保存
wb.close();//关闭workbook,释放内存 ---》一定要释放内存

java 如何递归遍历多重目录下的指定格式文件复制到目标目录并改格式

问题:使用递归方法
1.指定from为目录:fromPath=D:\abc; 目录下有a.txt., b.txt, c.html.d.java,文件夹(test)同时文件夹下同样f.txt , G..java等多种格式的,文件; 目标目录 E:\ABC;
要求:.过滤源目录下的TXT格式文档并且复制到目标目录并改格式为.java,将源目录下的子目录的符合条件的文件也同样操作,并复制到同名的文件夹(e:\ABC\test)下即将整个文件夹架构一并复制 ;
例子:将a.txt.,b.txt.复制到目标目录E:\ABC;并改格式,并将子目录test也复制到E:\ABC下,,test下包含原有的改名后的f.java;
2.指定from为文件:fromPath=D:\\abc.txt;同样复制后并改名,目标目录放置在文件夹E:\ABC下;

我自己写了下 ,最后结果只能实现:
当FROM为目录时,只能过滤根目录下的文件,子目录下文件复制不了;
当from为文件时,不能放到ABC的目录下,只是建立个同名的ABC文件并无后缀
如何将2个功能统一在一块呢?
贴上我的代码:
public class CopyIO
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException
// TODO Auto-generated method stub
copyFiles("d:\\abc", "e:\\ABC");
System.out.println("复制成功");

/**
* 复制指定目录下.txt文件到目标目录下并改名为。java
* @param fromPath 源目录
* @param toPath 目标目录
* @throws IOException
*/
public static void copyFiles(String fromPath,String toPath) throws IOException
File mFile=new File(fromPath);

if (mFile.isDirectory())
File tFile=new File(toPath);
if (!tFile.exists()) tFile.mkdir();
File[] files=mFile.listFiles(new FilenameFilter()

@Override
public boolean accept(File dir, String name)
// TODO Auto-generated method stub
return name.endsWith(".txt");

);

for (File file : files)
copyFiles(file.toString(), toPath+File.separator+file.getName().replaceAll("\\.txt$", ".java"));
//copyFiles(file.toString(), toPath+File.separator+file.getName());此处实现不需改格式的方法



else
copy(fromPath, toPath);


public static void copy(String p1,String p2) throws IOException
//File t=new File(p2);
//File f=new File(p1);
//String filename=t.getAbsolutePath()+File.pathSeparator+f.getName();
//File f1=new File(p1);
//File f2=new File(p2);
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream(p1)));
byte[] bytes=new byte[in.available()];
in.read(bytes);
DataOutputStream out=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(p2)));
out.write(bytes);
in.close();
out.close();

参考技术A 只考虑文件就可以,文件夹什么的 只要在创建文件时创建路径,不存在的就创建就好了

以上是关于如何使用java编写一个从指定的TXT文件每行固定位置抓取数据并生成一个xls表自动保存的程序?的主要内容,如果未能解决你的问题,请参考以下文章

java指定文件夹下查找固定的字符串并将其所在的文件名,行数,该行全部内容写入txt文件中(具体实例)

用java如何读取一个文件的指定字节位置的数据?

编写程序,将指定目录下所有.java 文件拷贝到另一个目的中,并将扩展名改为.txt。

shell编写脚本从FTP上下载文件,因为一般固定端口是21,所以网上很多脚本都没有指定端口,现在我要指定端口

java 按行读取txt文件的数字

水文日常~~Python如何按行读取txt文件中的数据并去除每行末尾的回车符