这里有操作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"); } } }