java操作excel

这里有操作excel的程序 但是一定要记得添加 jxl-2.6.jar包
import java.io.File;
import java.io.IOException;


import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;


public class 操作excel {
   public static void main(String[] args) throws RowsExceededException, WriteException, BiffException {
// 打开文件
       try {
WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));
// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
WritableSheet sheet = book.createSheet("第一页", 0);
         
         // 以及单元格内容为test
         Label label = new Label(0, 0, "test");


         // 将定义好的单元格添加到工作表中
         sheet.addCell(label);


         /*
          * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
          */
         jxl.write.Number number = new jxl.write.Number(1, 0, 555.12541);
         sheet.addCell(number);


         // 写入数据并关闭文件
         book.write();
         book.close();
         read();
         
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
    public static void read() throws BiffException, IOException{
    Workbook book = Workbook.getWorkbook(new File("test.xls"));
    System.out.println(new File("test.xls").getAbsolutePath());
        // 获得第一个工作表对象
        Sheet sheet = book.getSheet(0);
        // 得到第一列第一行的单元格
        Cell cell1 = sheet.getCell(0, 0);
        Cell cell2 =sheet.getCell(1,0);
        String result = cell1.getContents();
        String result2 =cell2.getContents();
        // 得到第二列第一行的单元格
        System.out.println(result);
        System.out.println(result2);
        book.close();
    }
}

import java.util.Scanner;


public class Add {
   public static void main(String[] args) {
/** 有N个纸片 每个纸片上面一个数字 抽取N次 看有没有和为m的可能
* 
*/
System.out.println("请输入有几个纸片");
int n;
Scanner input=new Scanner(System.in);
n=input.nextInt();
System.out.println("请输入"+n+"数字");
int [] a=new int[n]; 
for(int i=0;i<n;i++){
a[i]=input.nextInt();
}
System.out.println("你输入的数组是");
for(int b:a){
System.out.print(b+"\t");
}
a=Util.selectSort(a);
System.out.println("请输入你想要求得和");
int m=input.nextInt();
boolean flag=false;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<n;k++){
for(int l=0;l<n;l++){
//为了提高效率 a[i]+a[j]+a[k]+a[l] == m 可以写成  a[l]=m-(a[i]+a[j]+a[k]);
//判断这组数据里面有没有这样的数 
//可以用先排好序列 然后再用二分查找
// if(a[i]+a[j]+a[k]+a[l] == m){

// flag=true;
// }
if(Util.isValueByMiddle(m-(a[i]+a[j]+a[k]), a)){
flag=true;
}
}
}
}
}
if(flag){
System.out.println("yes");
}else{
System.out.println("no");
}
}


}

你可能感兴趣的:(java)