读取指定目录下的所有文件生成一个excel

package com.zy.services.huiche.excel;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;


import com.zy.services.huiche.K;




import jxl.Workbook;
import jxl.write.Boolean;
import jxl.write.DateFormats;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;






public class excel2 {  
    public static boolean readfile1(String filepath,OutputStream os) throws FileNotFoundException, IOException {
    WritableWorkbook workbook = Workbook.createWorkbook(os);
        try {
                File file = new File(filepath);
            String encoding = "UTF-8";
                if (!file.isDirectory()) {
                        System.out.println("文件");
                        System.out.println("path=" + file.getPath());
                        System.out.println("absolutepath=" + file.getAbsolutePath());
                        System.out.println("name=" + file.getName());
                } else if (file.isDirectory()) {
                        System.out.println("文件夹");
                        String[] filelist = file.list();
                        int j=0;
                        for (int i = 0; i < filelist.length; i++) {
                                File readfile = new File(filepath + "\\" + filelist[i]);
                                if (readfile.isFile() && readfile.exists()) { // 判断文件是否存在
                                if(readfile.getName().indexOf(".txt")==-1){
                                continue;
                                }
                                WritableSheet sheet =workbook.createSheet(readfile.getName().replaceAll(".txt","").replaceAll("0","").replaceAll("1","").replaceAll("2","").replaceAll("3","").replaceAll("4","").replaceAll("5","").replaceAll("6","").replaceAll("7","").replaceAll("8","").replaceAll("9","").toLowerCase(),j);
                    InputStreamReader read = new InputStreamReader(
                    new FileInputStream(readfile), encoding);// 考虑到编码格式
                    BufferedReader bufferedReader = new BufferedReader(read);
                    String lineTxt = null;
                    int m=1;
                    Label td1 = new Label(0,0,"合约");
                sheet.addCell(td1);
                Label td2 = new Label(1,0,"开仓方向");
                sheet.addCell(td2);
                Label td3 = new Label(2,0,"开仓价");
                sheet.addCell(td3);
                Label td4 = new Label(3,0,"平仓价");
                sheet.addCell(td4);
                Label td5 = new Label(4,0,"利润");
                sheet.addCell(td5);
                Label td6 = new Label(5,0,"MA");
                sheet.addCell(td6);
                Label td7 = new Label(6,0,"开仓时间");
                sheet.addCell(td7);
                Label td8 = new Label(7,0,"平仓时间");
                sheet.addCell(td8);
                Label td9 = new Label(8,0,"持仓时间");
                sheet.addCell(td9);
                Label td10 = new Label(9,0,"平仓类型");
                sheet.addCell(td10);
                Label td11 = new Label(10,0,"开仓数量");
                sheet.addCell(td11);
                Label td12 = new Label(11,0,"实际利润");
                sheet.addCell(td12);
                Label td13 = new Label(12,0,"TR阀值");
                sheet.addCell(td13);
                    while ((lineTxt = bufferedReader.readLine()) != null) {
                    System.out.println(lineTxt);
                    String[] tds = lineTxt.split(",");
                    for(int t=0;t<tds.length;t++){
                    Label xuexiao = new Label(t,m,tds[t]);
                    sheet.addCell(xuexiao);
                    }
                    m++;
                    }
                    read.close();
                    j++;
                    } else {
                    System.out.println("找不到指定的文件");
                    }
                        }
                        workbook.write();
                        workbook.close();
                        os.close();
                }
        } catch (Exception e) {
        e.printStackTrace();
        }
        return true;
    }
    public static boolean readfile2(String filepath,OutputStream os) throws FileNotFoundException, IOException {
    WritableWorkbook workbook = Workbook.createWorkbook(os);
        try {
                File file = new File(filepath);
            String encoding = "UTF-8";
                if (!file.isDirectory()) {
                        System.out.println("文件");
                        System.out.println("path=" + file.getPath());
                        System.out.println("absolutepath=" + file.getAbsolutePath());
                        System.out.println("name=" + file.getName());
                } else if (file.isDirectory()) {
                        System.out.println("文件夹");
                        String[] filelist = file.list();
                        int j=0;
                        for (int i = 0; i < filelist.length; i++) {
                                File readfile = new File(filepath + "\\" + filelist[i]);
                                if (readfile.isFile() && readfile.exists()) { // 判断文件是否存在
                                if(readfile.getName().indexOf(".txt")==-1){
                                continue;
                                }
                                WritableSheet sheet =workbook.createSheet(readfile.getName().replaceAll(".txt","").replaceAll("0","").replaceAll("1","").replaceAll("2","").replaceAll("3","").replaceAll("4","").replaceAll("5","").replaceAll("6","").replaceAll("7","").replaceAll("8","").replaceAll("9","").toLowerCase(),j);
                    InputStreamReader read = new InputStreamReader(
                    new FileInputStream(readfile), encoding);// 考虑到编码格式
                    BufferedReader bufferedReader = new BufferedReader(read);
                    String lineTxt = null;
                    int m=1;
                    String trALL="合约号,策略周期,开仓参数,起始时间,结束时间,周期,胜点,期初权益,当前权益,交易手数,盈利手数,亏损手数,连续盈利手数,连续亏损手数,总盈利,总亏损,最高净值,最低净值,最大资产回撤,盈亏比,总手续费,净利润,年化收益率,胜率,收益风险比,凯利指数,成交量,成交量,成交量";
                    String[] trs=trALL.split(",");
                    for(int d=0;d<trs.length;d++){
                    Label td = new Label(d,0,trs[d]);
                    sheet.addCell(td);
                    }
                    while ((lineTxt = bufferedReader.readLine()) != null) {
                    System.out.println(lineTxt);
                    String[] tds = lineTxt.split(",");
                    for(int t=0;t<tds.length;t++){
                    if(t==2||t>4){
                    Number  number = new Number (t,m,Double.parseDouble(tds[t]));
                        sheet.addCell(number);
                    }else{
                    Label xuexiao = new Label(t,m,tds[t]);
                        sheet.addCell(xuexiao);
                    }
                   
                    }
                    m++;
                    }
                    read.close();
                    j++;
                    } else {
                    System.out.println("找不到指定的文件");
                    }
                        }
                        workbook.write();
                        workbook.close();
                        os.close();
                }
        } catch (Exception e) {
        e.printStackTrace();
        }
        return true;
    }
public static void main(String[] args) {
// String path="D:\\Log\\5MAGL\\1M1T9\\Statement";
// String path="D:\\Log\\BOLL\\5M1T1\\Statement";
String path="D:\\Log\\TJQS\\1M1T1\\Record";
//String path="D:\\Log\\Data";
// String path="D:\\Log\\QPJ\\1M1T\\Statement";

File f= new File(path + File.separator + "TJQS.xls") ; // 声明File对象
OutputStream out = null ; // 准备好一个输出的对象
try {
out = new FileOutputStream(f)  ;
readfile1(path,out);
out.close(); 
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 通过对象多态性,进行实例化

}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值