excel 操作

来源:互联网 发布:剑灵捏脸数据灵男数据 编辑:程序博客网 时间:2024/06/01 07:47
import java.awt.List;import java.io.*;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.*;import jxl.Cell;import jxl.CellType;import jxl.DateCell;import jxl.LabelCell;import jxl.NumberCell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;import jxl.write.Label;import jxl.write.WritableCellFormat;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import jxl.write.biff.RowsExceededException;public class Test7 {public static void main(String args[]) throws BiffException, IOException {int C;ArrayList<ArrayList<String>> dd = new ArrayList<ArrayList<String>>();for(int i=1;i<=20;i++){DateRandomTest bb = new DateRandomTest();    Date randomDate = bb.randomDate("2009-01-01", "2012-08-31");    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    ArrayList<ArrayList<String>> aa = readExcel("d:/lwg/Mzhi/joint-hardware-inventory-service-request-"+sdf.format(randomDate)+".xls");    dd.addAll(aa);    } C=(int) (Math.random()*100); writeExcel("d:/xls/aa"+ +C +".xls", dd);}  /**把数组内容写到Excel文件,写到本地文件中        * @param data  包含行列的数组        * @return  字节数组      * @author yaofuyuan      * @createTime 2012-04-28 16:00      */      public static void writeExcel(String filname,ArrayList<ArrayList<String>> data){             WritableWorkbook wwb = null;             try {                 //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象                 wwb =Workbook.createWorkbook(new File(filname));             } catch (IOException e) {                 e.printStackTrace();             }             if(wwb!=null){                 //创建一个可写入的工作表                 //Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置                 WritableSheet ws = wwb.createSheet("sheet1", 0);                                  //下面开始添加单元格                 for(int i=0,rowLen=data.size();i<rowLen;i++){                     ArrayList<String> row=data.get(i);                  for(int j=0,colLen=row.size();j<colLen;j++){                         //这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行                         Label labelC = new Label(j, i, row.get(j));                       try {                          //将生成的单元格添加到工作表中                           ws.addCell(labelC);                      } catch (RowsExceededException e) {                             e.printStackTrace();                         } catch (WriteException e) {                             e.printStackTrace();                         }                    }                 }                 try {                     //从内存中写入文件中                     wwb.write();                     //关闭资源,释放内存                     wwb.close();               } catch (IOException e) {                     e.printStackTrace();                 } catch (WriteException e) {                     e.printStackTrace();                 }             }         }                 private static Object row(String string) {// TODO Auto-generated method stubreturn null;}/**//**生成一个Excel文件     * @param fileName  要生成的Excel文件名     *//*     public static void writeExcel1(String fileName,String filele){        WritableWorkbook wwb = null;         try {            //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象            wwb = Workbook.createWorkbook(new File(fileName));         } catch (IOException e) {            e.printStackTrace();        }         if(wwb!=null){            //创建一个可写入的工作表            //Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置            WritableSheet ws = wwb.createSheet("sheet1", 0);                        //下面开始添加单元格             for(int i=0;i<10;i++){                 for(int j=0;j<5;j++){                    //这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行                    Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");                     try {                        //将生成的单元格添加到工作表中                        ws.addCell(labelC);                     } catch (RowsExceededException e) {                        e.printStackTrace();                     } catch (WriteException e) {                        e.printStackTrace();                    }                }            }             try {                //从内存中写入文件中                wwb.write();                //关闭资源,释放内存                wwb.close();             } catch (IOException e) {                e.printStackTrace();             } catch (WriteException e) {                e.printStackTrace();            }        }    } */ /*   public static String readExcel(String file){        StringBuffer sb = new StringBuffer();                Workbook wb = null;         try {            //构造Workbook(工作薄)对象            wb=Workbook.getWorkbook(new File(file));         } catch (BiffException e) {            e.printStackTrace();         } catch (IOException e) {            e.printStackTrace();        }                if(wb==null)            return null;                //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了        Sheet[] sheet = wb.getSheets();                 if(sheet!=null&&sheet.length>0){            //对每个工作表进行循环             for(int i=0;i<sheet.length;i++){                //得到当前工作表的行数                int rowNum = sheet[i].getRows();                 for(int j=0;j<rowNum;j++){                    //得到当前行的所有单元格                    Cell[] cells = sheet[i].getRow(j);                     if(cells!=null&&cells.length>0){                        //对每个单元格进行循环                         for(int k=0;k<cells.length;k++){                            //读取当前单元格的值                            String cellValue = cells[k].getContents();                            sb.append(cellValue+" ");                        }                    }                    sb.append(" ");                }                sb.append(" ");            }        }        //最后关闭资源,释放内存        wb.close();        return sb.toString();    }    */        /**读取Excel文件的内容        * @param file  待读取的文件        * @return  ArrayList<ArrayList<String>> 包括excel里的第一个工作簿的所有行列      * @author yaofuyuan      * @createTime 2012-04-28 16:00      */        public static ArrayList<ArrayList<String>> readExcel(String fileName){             ArrayList<ArrayList<String>> data=new  ArrayList<ArrayList<String>>();              Workbook wb = null;             try {                 //构造Workbook(工作薄)对象                 wb=Workbook.getWorkbook(new File(fileName));             } catch (BiffException e) {                 e.printStackTrace();             } catch (IOException e) {                 e.printStackTrace();             }                if(wb==null)                 return data;                          //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了             Sheet[] sheet = wb.getSheets();             if(sheet!=null&&sheet.length>0){                 Sheet sheet0=sheet[0];              //得到当前工作表的行数                int rowNum = sheet0.getRows();               for(int i=0;i<rowNum;i++){                  //得到当前行的所有单元格                     Cell[] cells = sheet0.getRow(i);                  ArrayList<String> row=new ArrayList<String>();                   if(cells!=null&&cells.length>0){                       int cellNum=cells.length;                      //对每个单元格进行循环                        for(int j=0;j< cellNum;j++){                          //读取当前单元格的值                           Cell c=cells[j];                           String cellValue = cells[j].getContents();                           if(!cellValue.trim().equals("7979")){//                         Interger.valueOf(value.trim)==7979                         if(c.getType() == CellType.LABEL)                           {                               LabelCell labelc00 = (LabelCell)c;                               cellValue = labelc00.getString();                           }else                           if(c.getType() == CellType.NUMBER)                           {                               NumberCell numc10 = (NumberCell)c;                               cellValue = getFormatNumber(numc10.getValue());                           }else                           if(c.getType() == CellType.DATE)                           {                               DateCell datec11 = (DateCell)c;                               cellValue = getFormatTime(datec11.getDate());                           }                                                      row.add(cellValue);                       }                      }                 }                    data.add(row);              }                          }             //最后关闭资源,释放内存             wb.close();             return data;         }                        public static String getFormatNumber(double n) {          DecimalFormat df = new DecimalFormat("#.##########");          return df.format(n);      }      public static String getFormatTime(Date logtime) {          if (null == logtime) {              logtime = new Date();          }          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");          String time = "";          try {              time = sdf.format(logtime);          } catch (Exception e) {              e.printStackTrace();          }                    return time;      }                                                      public class Excel {        public Excel() {        }        public void CreateWorkbook(File file, double[] a) {            try {                if (!file.exists()) { //判断文件是否已存在,如果没有存在则创建新文件                    jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new                            File("result.xls"+1));                    jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);                    int i = 0;                    ws.setColumnView(0, 20); //设置列宽                    jxl.write.NumberFormat nf = new jxl.write.NumberFormat(                            "0.0000000000000000"); //定义数值格式                    WritableCellFormat wcfN = new WritableCellFormat(nf);                    String str2 = "第" + 1 + "次试验";                    Label label = new Label(0, 0, str2);                    ws.addCell(label);                    while (i < a.length) {                        jxl.write.Number num = new jxl.write.Number(0, i + 1,                                a[i], wcfN);                        ws.addCell(num);                        i++;                    }                    //写入Exel工作表                    wwb.write();                    //关闭Excel工作薄对象                    wwb.close();                } else {                    Workbook rwb = Workbook.getWorkbook(file);                    File tempfile = new File(System.getProperty("user.dir") +                                             "\\tempfile.xls");                    WritableWorkbook wwb = Workbook.createWorkbook(tempfile, rwb);                    WritableSheet ws = wwb.getSheet(0);                    int num = rwb.getSheet(0).getColumns();                    int num1 = num + 1;                    ws.setColumnView(num, 20); //设置列宽                    String str2 = "第" + num1 + "次试验"; //添加列名                    Label label = new Label(num, 0, str2);                    ws.addCell(label);                    int i = 0;                    jxl.write.NumberFormat nf = new jxl.write.NumberFormat(                            "0.000000000000000"); //定义数值格式                    WritableCellFormat wcfN = new WritableCellFormat(nf);                    while (i < a.length) {                        jxl.write.Number number = new jxl.write.Number(num,                                i + 1,                                a[i], wcfN);                        ws.addCell(number);                        i++;                    }                    wwb.write();                    wwb.close();                    rwb.close();                    String filename = file.getPath();                    System.out.println("filename:" + filename);                    file.delete();                    tempfile.renameTo(file);                    System.out.println("tempfile:" + tempfile.getPath());                    System.out.println(tempfile.exists());                    System.out.println(file.exists());                }            } catch (Exception e) {                e.printStackTrace();            }        }    }                            }


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝幼儿园坐不住怎么办 孩孑上课听不懂怎么办 25岁儿子不听话怎么办 幼儿午睡爱说话怎么办 幼儿园实习很累怎么办 怀孕后脚气严重怎么办 拼音a不会写怎么办 儿童7岁还坐不住怎么办 孩子缺锌手蜕皮裂开怎么办 宝宝读幼儿园哭怎么办 幼儿上课爱讲话怎么办 孩子上课总是乱跑怎么办 孩子听不懂老师讲课怎么办 高一上课听不懂怎么办 上课学生纪律差怎么办 一年级学生认字少怎么办 孩子上课做不住怎么办 幼儿园小孩上课乱跑怎么办 孩子挑食不爱吃饭怎么办 幼儿园孩子不听指令怎么办 1岁宝宝多动症怎么办 3岁宝宝胆小怎么办 爱挑食的孩子怎么办 小孩上课经常发呆怎么办 小孩不爱吃饭挑食怎么办 一年级小孩学习不好怎么办 宝宝上课坐不住怎么办 八个月婴儿拉稀怎么办 八个月孕妇拉稀怎么办 孩子好动爱喊怎么办 八个月小孩发烧怎么办 孩子好动怎么办学龄前教育 小孩好动症该怎么办 小孩子好动症该怎么办 怀孕5个月胎死亡怎么办 小孩多动调皮怎么办 手心老是出汗是怎么办 孩子吃饭特别慢怎么办 小孩子老想睡觉怎么办 孩子下午上课犯困怎么办 小孩子有多动症该怎么办