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();
		}
	}
}

 

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