lidayong 发表于 2013-1-15 02:19:05

jxl 下拉列表 序列

最近用到jxl 需要用到下拉列表,鉴于列表项很多 于是做了2个sheet页 一个作为数据,生成序列后使用在下拉列表中
import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Border;import jxl.format.BorderLineStyle;import jxl.format.UnderlineStyle;import jxl.format.VerticalAlignment;import jxl.write.Label;import jxl.write.WritableCellFeatures;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import jxl.write.biff.RowsExceededException;public class Test {public void writeXls(OutputStream os) {String[] fdArr = { "学号", "姓名", "班级", "成绩" };JExcelUtils jeu = new JExcelUtils();try {WritableWorkbook workbook = Workbook.createWorkbook(os);WritableSheet sheet = workbook.createSheet("信息", 0); //添加第一个工作表   WritableSheet sheetData = workbook.createSheet("data", 1); //添加第2个工作表   jeu.initialSheetSetting(sheet);WritableCellFormat wcf = new WritableCellFormat(new WritableFont(WritableFont.ARIAL, 20, WritableFont.BOLD,false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.GREEN));wcf.setAlignment(Alignment.CENTRE);wcf.setVerticalAlignment(VerticalAlignment.CENTRE);wcf.setBorder(Border.ALL, BorderLineStyle.THIN);jeu.mergeCellsAndInsertData(sheet, 1, 0, fdArr.length, 0, "学生基本信息", wcf);for (int i = 0; i < fdArr.length; i++) {String tb = fdArr;Label label = new Label(i + 1, 1, tb, jeu.getTitleCellFormat());sheet.addCell(label);Label lLabel = new Label(i + 1, 2, "");if (i == 2) {WritableCellFeatures wcfc = new WritableCellFeatures();getlReference(workbook, sheetData, "class");wcfc.setDataValidationRange("class");lLabel.setCellFeatures(wcfc);}sheet.addCell(lLabel);}workbook.write();workbook.close();} catch (Exception e) {System.out.println(e);}}private String getlReference(WritableWorkbook workbook, WritableSheet sheetData, String name)throws RowsExceededException, WriteException {for (int i = 0; i < 5000; i++) {sheetData.addCell(new Label(0, i, "班级" + i));}workbook.addNameArea(name, sheetData, 0, 0, 0, 5000);return name;}public static void main(String args[]) throws IOException, RowsExceededException, WriteException {FileOutputStream fo = new FileOutputStream(new File("G://aa.xls"));new Test().writeXls(fo);}}
页: [1]
查看完整版本: jxl 下拉列表 序列