⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readxls.java

📁 java_excel_api是专业为java开发的用于和excel交互的api函数。本代码是使用该包进行数据统计并把数据结果导入excel的例子。
💻 JAVA
字号:
package pkt;
import java.io.*; 
import jxl.*; 
import java.io.File; 
import jxl.Workbook; 
import jxl.write.Label; 
import jxl.write.WritableSheet; 
import jxl.write.WritableWorkbook;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;

public class Readxls {
	 
	public  static int getk(int a[],int row){
		 int k=0;
		 if (row<a[0]) k=0;
		 if ((row>=a[0])&&(row<a[0]+a[1])) k=1;
		 if ((row>=a[0]+a[1])&&(row<a[0]+a[1]+a[2]))k=2;
		 if ((row>=a[0]+a[1]+a[2])&&(row<a[0]+a[1]+a[2]+a[3]))k=3;
		 if ((row>=a[0]+a[1]+a[2]+a[3])&&(row<a[0]+a[1]+a[2]+a[3]+a[4]))k=4;
		 if ((row>=a[0]+a[1]+a[2]+a[3]+a[4])&&(row<a[0]+a[1]+a[2]+a[3]+a[4]+a[5]))k=5;
		 return k;
	 }
	 public static void main(String args[]) { 
		    try { 
		      Workbook book = Workbook.getWorkbook(new File("c:\\data\\bnu_8.xls")); 
		      Sheet sheet = book.getSheet(0); 
		      
		      int column=sheet.getColumns();
		      int row=sheet.getRows()-1;
		      System.out.println(row);
		      System.out.println(column);
		      int [][]arr=new int[row][column];

		      Cell cell;
		      for(int i=0;i<row;i++){
		    	  System.out.println("\r\n");
		    	  for(int j=0;j<column;j++){
		    		  cell=sheet.getCell(j,i);
		    		 
		    		  arr[i][j]= Integer.parseInt(cell.getContents().toString());
		    		  
		    	  }
		      }
		   
		      
		      //建立三维数组,a[学生数][题目数][指标]
		      int [][][]statistic=new int[column-1][6][4];
		      int [] tinum=new int[6];
		      //存储每道题含有的题目数 对每个文件要手工输入
		      tinum[0]=7;
		      tinum[1]=9;
		      tinum[2]=11;
		      tinum[3]=13;
		      tinum[4]=15;
		      tinum[5]=17;
		      for(int m=1;m<column;m++){
		    	  int k=0;
		    	  for(int n=0;n<row;n++){
		                k=getk(tinum,n);
		                //答题数目
		    		  if(arr[n][m]!=99) {
		    			  statistic[m-1][k][0]++;  
		    		  }
		    		 
		    	      //2.每个人在每道题上正确答题数目
			    	  if(arr[n][0]==arr[n][m]&&arr[n][0]!=99){
			    		  statistic[m-1][k][1]++;  
			    	  }
			    	  //3.漏掉的题目
			    	  if(arr[n][0]!=arr[n][m]&&arr[n][0]!=99){
			    		  statistic[m-1][k][2]++;  
			    	  }
			    	  //4.虚报
		    		  if(arr[n][0]!=arr[n][m]&&arr[n][0]==99){
		    			  statistic[m-1][k][3]++;  
		    		  }	  
		    	  }
		      }
		      
		      //把生成的数据写进xls中
		   // 打开文件 
		      WritableWorkbook wb = Workbook.createWorkbook(new File("c:\\bnu_8.xls")); 
		      // 生成名为“第一页”的工作表,参数0表示这是第一页 
		      WritableSheet ws = wb.createSheet("Sheet1", 0); 
			  try { 
			      // 打开文件 
			    //  WritableWorkbook wb = Workbook.createWorkbook(new File("c:\\测试.xls")); 
			      // 生成名为“第一页”的工作表,参数0表示这是第一页 
			    //  WritableSheet ws = wb.createSheet("Sheet1", 0); 
			      //建立三维数组,a[学生数][题目数][指标]
			      //int [][][]statistic=new int[column-1][6][4];
			      for (int m=0;m<column-1;m++)
			    	  for(int n=0;n<6;n++)
			    		for(int p=0;p<4;p++){
				    		jxl.write.Number number = new jxl.write.Number( n*4+p+1,m+1, statistic[m][n][p]); 
							ws.addCell(number);
			    			
			    		}
			      //统计了总体数据
				     
			      int [] xubao=new int[column-1];
			      int [] zhengque=new int[column-1];
			      int [] loudiao=new int[column-1];
			      int []tongji=new int[column-1];
			      for(int i=0;i<row;i++){
			    	  int j;
			    	  System.out.println("\n");
			    	  
			    	  for( j=1;j<column;j++){
			    		
			    		  //4.输出虚报数目
			    		  if(arr[i][0]!=arr[i][j]&&arr[i][0]==99){
			    			  xubao[j-1]++;
			    		  }
			    	      //2.每个人在每道题上正确答题数目
				    	  if(arr[i][0]==arr[i][j]&&arr[i][0]!=99){
				    		  zhengque[j-1]++;
				    	  }
				    	  //3.漏掉的题目
				    	  if(arr[i][0]!=arr[i][j]&&arr[i][0]!=99){
				    		  loudiao[j-1]++;
				    	  }
				    	  //1	即统计被试在每道题是那个写了几个数字(“99”即空格除外)
				    	  if(arr[i][j]!=99) {
				    		  tongji[j-1]++;
				    	  }
			    	  }
			      }
			    
			      //综合统计填写
			      for(int m=0;m<3;m++)
			    	  for(int n=0;n<column-1;n++){
			    		  jxl.write.Number total1 = new jxl.write.Number(25,n+1,tongji[n]);
			    		  ws.addCell(total1);
			    		 
			    		  jxl.write.Number total2 = new jxl.write.Number(26,n+1,zhengque[n]);
			    		  ws.addCell(total2); 
			    		  jxl.write.Number total3 = new jxl.write.Number(27,n+1,loudiao[n]);
			    		  ws.addCell(total3); 
			    		  jxl.write.Number total4 = new jxl.write.Number(28,n+1,xubao[n]);
			    		  ws.addCell(total4); 
			    		  
			    	  }

			    		  
			      // 写入数据并关闭文件 
			      wb.write(); 
			      wb.close(); 
			    } catch (Exception e) { 
			      System.out.println(e); 
			    } 
			 
		    
		      /*display
		      System.out.println("\n每道题是那个写了几个数字:");
		     for( int i=0;i<column-1;i++) 
		    	 System.out.print(tongji[i]+" ");
		     
		     System.out.println("\n每个人在每道题上正确答题数目:");
		     for(int i=0;i<column-1;i++) 
		    	 System.out.print(zhengque[i]+" ");
		     System.out.println("\n漏掉的题目:");
		     for(int i=0;i<column-1;i++) 
		    	 System.out.print(loudiao[i]+" ");
		     System.out.println("\n输出虚报数目:");
		     for(int i=0;i<column-1;i++) 
		    	 System.out.print(xubao[i]+" ");
		  */
		      book.close(); 
		    
		    } catch (Exception e) { 
		      System.out.println(e); 
		    } 
		  }
	 
	
	
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -