Java腳本操作Excel

操作之前需求導入jxl.jar這個jar包。

需求描述:
1.表格中C欄爲原始打分數據,D欄爲建議原始打分數據不變、提高或者減少,E欄是需要打分的數據欄,根據D欄的建議進行打分,F欄爲打分的示例。
2.大家在D欄建議的基礎上打分,打分的規則是在原始的分數上 (+-5)例如:原始分數爲30 建議分數爲增大,則打分爲(31-35都可以 ),但是所有建議增大的項目不能都增加相同的數值,比如都增加2,即原始分數爲30、35,43,建議分數爲增大,不能爲32,37,45;
3.建議爲分數不變的,打分的時候儘量不要全部不變(需變化的數量沒有具體要求,根據自己去變化就行,但是也不要全部變化,要保證有不變的分值),在原始的分數上+-2,比如:原始分數爲30,建議爲不變,則打分的時候(28-32都可以)

代碼:

import java.io.File;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class Operator {

	public static void main(String[] args){
		try
		{
			File xlsFile = new File("D:\\Program Files (x86)\\eclipseworkspace\\ExcelOp\\專家建議打分模板.xls");
		    // 獲得工作簿對象
			Workbook workbook=Workbook.getWorkbook(xlsFile);
		    WritableWorkbook writeBook=Workbook.createWorkbook(new File("副本.xls"),workbook);
		    // 獲得工作表
		    WritableSheet sheet = writeBook.getSheet(0);
		    if(sheet!=null)
		    {
		    	int cnt=0;
		    	for (int row = 1; row < 541; row++)
				{
		    		String advice=sheet.getCell(3, row).getContents();
				    WritableCell cell=sheet.getWritableCell(4,row);
				    jxl.format.CellFormat cf=cell.getCellFormat();
				    Label lable=null;
				    int now=Integer.parseInt(sheet.getCell(2, row).getContents());
				    if(advice.equals("不變"))
				    {
				    	int random=(int)(5*Math.random());
				    	if(cnt%2==0)
				    	{
				    		lable=new Label(4, row, String.valueOf(now));
				    	}
				    	else
				    	{
				    		lable=new Label(4, row, String.valueOf(now-2+random));
				    	}
				        cnt++;
				    }
				    else if(advice.equals("提高"))
				    {
				    	int random=(int)(5*Math.random());
				        lable=new Label(4, row, String.valueOf(now+1+random));
				    }
				    else if(advice.equals("降低"))
				    {
				    	int random=(int)(5*Math.random());
				        lable=new Label(4, row, String.valueOf(now-1-random));
				    }
				    //將修改後的單元格格式設置成和原來一樣的
				    lable.setCellFormat(cf);
					//將修改後的cell放回sheet中
					sheet.addCell(lable);
				}
			}
		    writeBook.write();
		    writeBook.close();
		    workbook.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章