`
北风norther
  • 浏览: 13366 次
  • 性别: 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代表列

相关推荐

Global site tag (gtag.js) - Google Analytics