`
北风norther
  • 浏览: 14108 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸
社区版块
存档分类
最新评论

javase多个txt文件内容导入excel中

阅读更多

做一个项目,需要把excel的东西导入数据库,,但发给我的是txt文件,要求先转成excle文件。。。

废话不多说,我也是新手,都是一晚上学到的东西,总结下。

这是发给我的东西




 要求结果是要这样

 思路就是扫描4个文件夹下的所有txt文件,读出内容,写入excel中

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;


public class Test3 {
	//data路径
	static String[] dataPath ={"e://data//ac","e://data//Icebox","e://data//Television","e://data//Washer"};
	// SHEET NAME
	static String[] sheetName = {"AC","Icebox","Television","Washer"};
	static String[] sortname={"空调","冰箱","电视","洗衣机"};
	static String encoding="GBK";//编码,不写的话可能会有乱码

	
	public static void main(String[] args) throws Exception {
		File excel= new File("e://data1","goods.xls");//新建goods.xls,如果存在则会覆盖
		WritableWorkbook book =Workbook.createWorkbook(excel);
		for(int m=0;m<4;m++)//打开4个文件夹
		{
			File files=new File(dataPath[m]);
			File[] file=files.listFiles();
			WritableSheet sheet = 	book.createSheet(sheetName[m], m);//建立4个sheet分部存冰箱、空调、洗衣机的数据。。
			String line;int x=4,y=1,num=0;//对行列的控制
			for(int i=0;i<file.length;i++)//读出一个子文件夹下所有txt文件
			{
				//显示文件路径和文件名称
				System.out.println(file[i].getPath()+"《《《"+file[i].getName());
				//读txtbuffer
				InputStream fis =new FileInputStream(file[i]);
				InputStreamReader reader= new InputStreamReader(fis,encoding);
				BufferedReader buff =new BufferedReader(reader);
				//输出到excel
				int oder=0;
				while((line=buff.readLine())!=null)
				{	line=line.trim();
					//检验是否是空行,开头是否是数字,里面有没有“ : ”,长度大于10防止空数据
					if(line.trim().length()!=0&&(int)line.charAt(0)>47&&
							(int)line.charAt(0)<58&&line.indexOf(":")>0
							&&line.length()>10)//换行
					{	String s1,s2;
						s1=S1(line);s2=S2(line);
						oder++;
						sheet.addCell(new Label(0,y,oder+""));
						sheet.addCell(new Label(1,y,sortname[m]));
						sheet.addCell(new Label(2,y,s1));
						sheet.addCell(new Label(3,y,s2));
						
						x=3;
						if(y>1){sheet.addCell(new Label(5,y-1,(num-1)+""));}
						y++;
						num=0;
					}else{
					if(x==5){x++;}
					sheet.addCell(new Label(x,y-1,line));
					x++;num++;
					}
					}
				sheet.addCell(new Label(5,y-1,(num-1)+""));

			}
			
		}
		book.write();
		book.close();
	}
	
	
	//分割字符串
	public static String S1(String line){
		int i1;
		String s1;
		i1=line.indexOf(" ");
		line=line.substring(i1+1);
		i1=line.indexOf(" ");
		line=line.substring(i1+1);
		i1=line.indexOf(" ");
		s1=line.substring(0,i1);	
		return s1;
	}
	public static String S2(String line){
		int i1;
		String s2;
		i1=line.indexOf(" ");
		line=line.substring(i1+1);
		i1=line.indexOf(" ");
		line=line.substring(i1+1);
		i1=line.indexOf(" ");
		s2=line.substring(i1+1);		
		return s2;
	}
}

 
 

 

 

  • 大小: 43.1 KB
  • 大小: 51.2 KB
  • 大小: 51.6 KB
  • 大小: 36.5 KB
分享到:
评论
1 楼 北风norther 2014-01-23  
忘了说,Label(y,x,string) y代表行,x代表列

相关推荐

    导入poi jar包实现使用Beanshell读写Excel文件

    在Java编程环境中,Apache POI库是一个非常实用的工具,它允许我们操作Microsoft Office格式的文件,特别是Excel(.xls和.xlsx)文件。在JMeter测试框架中,我们可以结合使用POI库和BeanShell组件来读取和写入Excel...

    Javase笔记.txt

    Javase笔记.txt

    JavaSE实战——客户端上传文件到服务端

    在JavaSE实战项目中,客户端上传文件到服务端是一个常见的任务,这涉及到Java网络编程、文件操作以及TCP协议的理解和应用。在这个过程中,开发者需要掌握以下几个核心知识点: 1. **Java网络编程基础**:Java提供了...

    JavaSE 多线程资料

    JavaSE 多线程是Java编程中至关重要的概念,它涉及到如何在单个程序中同时执行多个任务,从而提升程序的效率和响应性。在Java中,线程是程序执行的最小单位,与进程一同构成了操作系统的基础运行模型。 首先,线程...

    javase-2.2-API文档-中文版.zip

    赠送Maven依赖信息文件:javase-2.2.pom; 包含翻译后的API文档:javase-2.2-javadoc-API文档-中文(简体)版.zip; Maven坐标:com.google.zxing:javase:2.2; 标签:google、zxing、javase、中文文档、jar包、java;...

    javase api 中文文档

    javase api 中文文档,文便不是很精通英文的朋友查看

    JavaSE_JavaSE学习资料_

    多线程则使得Java程序能够在单个进程中执行多个任务,提高系统性能。反射允许运行时动态访问类的信息和方法,提供更大的灵活性。枚举类型提供了一种创建常量集的方式,提高了代码的可读性和安全性。新版本的Java提供...

    javase-3.3.3-API文档-中文版.zip

    赠送Maven依赖信息文件:javase-3.3.3.pom; 包含翻译后的API文档:javase-3.3.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:com.google.zxing:javase:3.3.3; 标签:google、zxing、javase、中文文档、jar包、...

    JavaSE6中文chm文件+javase8chm英文版

    JavaTM 2 Platform Standard Edition 6API 规范 (chm中文) Java Platform Standard Edition 8 Documentation(chm英文)

    javase阶段15个实战项目代码

    3. 文件和I/O操作:Java提供了丰富的I/O流库,这些项目可能包含读写文件、处理文本数据或序列化对象等内容,有助于理解文件系统交互。 4. GUI编程:使用Java的Swing或JavaFX库,学习者可以创建图形用户界面,这可能...

    JavaSE李学重讲义

    文件I/O操作也是JavaSE中的重要内容。学习者需要掌握如何读写文件,如何处理目录,以及使用流进行数据传输。Java NIO(New Input/Output)提供了一种非阻塞I/O方式,提高了文件操作的效率。 线程是Java的另一大特色...

    简单的同学通讯录,并输出数据TXT文件到桌面

    标题中的“简单的同学通讯录,并输出数据TXT文件到桌面”揭示了这是一个关于创建和管理一个简单的联系人信息系统,并将这些数据导出为TXT文本文件的程序。这个程序可能是用Java开发的,因为标签中包含了"javase",这...

    JavaSE项目最终总结

    同时,面向对象编程(OOP)的概念,如封装、继承和多态性,也是JavaSE的核心内容。 在JavaSE中,异常处理是一个重要的部分。通过try-catch-finally结构,程序员可以捕获和处理运行时错误,确保程序的健壮性。另外,...

    javaSE基础笔记整合

    JavaSE基础笔记整合 ...* 一个源文件中可以写多个类,但是只能有一个类用public修饰 * 编译后,有几个类生成几个class文件 本文档涵盖了JavaSE的基础知识点,旨在帮助读者快速掌握Java语言的基础知识。

    王道JavaSE阶段测试

    这个文件很可能是王道JavaSE阶段测试的具体内容,可能包含选择题、填空题、简答题等多种题型,覆盖了JavaSE的各个重要知识点。例如,它可能会有以下内容: 1. **基本语法**:包括变量声明、数据类型、运算符、流程...

    javase开发多线程聊天室

    综上所述,"javase开发多线程聊天室"涉及到的技术点广泛,包括Java网络编程、多线程技术、IO流处理、设计模式应用、异常处理以及性能优化等多个方面。通过这样的项目实践,开发者能够深入理解Java SE的网络通信和...

    javase-3.3.0.zip

    在描述中提到的 "MatrixToImageWriter.writeToPath()方法",是这个工具包中的一个关键方法,它用于将二维码数据矩阵转换为图像文件并保存到指定的路径。 在JavaSE 3.3.0的前一版本中,可能是2.x系列,`...

    javase.jar core.jar

    在给定的压缩包中,有两个`.jar`文件:`javase.jar`和`core.jar`。 `javase.jar`可能包含了Java SE的某些库或框架,这些库可能包含了Java的基础类库,如集合框架、I/O流、网络编程、多线程、GUI组件等。Java SE提供...

    Javase 技术代码测试

    本项目针对JavaSE的多个核心知识点进行了综合性的测试,涵盖了线程、集合、内部类、设计模式、枚举、IO流以及自定义注解等多个关键领域。 1. **线程**:在Java中,线程是程序执行的最小单位,通过`Thread`类或者...

    javaSE学生在线考试系统

    在这个学生在线考试系统中,开发者充分利用了JavaSE的强大功能,构建了一个控制台版的考试应用,涵盖了Java基础知识、数据库操作、多线程以及输入/输出等多个关键领域。 首先,我们来看看数据库层面。项目中包含多...

Global site tag (gtag.js) - Google Analytics