JXL入门常用格式设置

合集下载

excel操作(jxl)

excel操作(jxl)

J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
Excel高级操作 Excel高级操作
一、 数据格式化
在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期 Excel中不涉及复杂的数据类型,能够比较好的处理字串、 中不涉及复杂的数据类型 已经能够满足一般的应用。 已经能够满足一般的应用。 字串格式化 字符串的格式化涉及到的是字体、粗细、字号等元素, 字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主 要由WritableFont WritableCellFormat类来负责 WritableFont和 要由WritableFont和WritableCellFormat类来负责
excel操作 操作(jxl) Java excel操作(jxl)
IBM 课程体系
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
本讲目标
java导入导出excel操作(jxl) Java解释Excel数据(jxl.jar包的使用)
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
读取Excel文件 读取Excel文件 Excel
public static void readExcel()throws Exception throws {Workbook workBook=Workbook.getWorkbook(new new File("D:\\my_project\\JXL_Test\\test.xls")); Sheet sheet=workBook.getSheet(0); int totalRow=sheet.getRows();//总行数 List<Person> personList=new ArrayList<Person>(); new for(int for int i=1;i<totalRow;i++) {Person p=new Person(); new Cell personIdCell=sheet.getCell(0,i);//行 列 Cell personNameCell=sheet.getCell(1,i); Cell personAddressCell=sheet.getCell(2,i); Cell personAgeCell=sheet.getCell(3,i); p.setPersonId(Integer.valueOf(personIdCell.getContents()));//得到内容 p.setAddress(personAddressCell.getContents()); p.setAge(Integer.valueOf(personAgeCell.getContents())); p.setPersonName(personNameCell.getContents()); J2EE_Struts personList.add(p);

JXL入门常用格式设置

JXL入门常用格式设置

JXL⼊门常⽤格式设置创建//输出流OutputStream os = new FileOutputStream(“D:\\test.xls”);//创建workbookWritableWorkbook workbook= Workbook.createWorkbook(os);//创建⼀个sheet 参数(sheetName ,sheetNumber)下标0开始代表第⼀页WritableSheet sheet = workbook.createSheet(“第⼀个sheet”, 0);宽度、⾼度、和并单元格//设置列的默认列宽(所有单元格)sheet.getSettings().setDefaultColumnWidth(9);//设置列的默认⾏⾼(所有单元格)sheet.getSettings().setDefaultRowHeight(500);//宽度设定第⼀列宽16 下标0开始代表第⼀列sheet.setColumnView(0, 16);//⾼度设定第⼀⾏⾼度700sheet.setRowView(0, 700);//单元格合并开始列号,开始⾏号,结束列号,结束⾏号sheet.mergeCells(0, 0, 31, 0);⽂字格式: 字体、⼤⼩、背景⾊、对齐、边框线、⾃动换⾏想使⽤⾃⼰定义的颜⾊请关注本⼈百度空间实现⽅法。

//⽣成字体字体MSPゴシック18号⾮粗体⾮斜体(字体在Excle中复制)WritableFont font = new WritableFont(WritableFont.createFont("MSPゴシック"), 18, WritableFont.NO_BOLD, false);//⽣成格式WritableCellFormat format= new WritableCellFormat();//向格式中加⼊字体format.setFont(font);//背景⾊format .setBackground(Colour.BLUE)//⽔平对齐format.setAlignment(Alignment.CENTRE);//垂直对齐format.setVerticalAlignment(VerticalAlignment.CENTRE);//边框线所有边框细线format.setBorder(Border.ALL, BorderLineStyle.THIN);//⾃动换⾏这⾥为true 时在⽂本中打\n会⾃动换⾏,不然要⼿动点⼀下才会换⾏format.setWrap(true);数字格式:百分⽐、分隔符等//百分⽐⽤右键EXCEL单元格---格式设置----表⽰形式---⽤户定义把格式复制到这⾥WritableCellFormat formate = new WritableCellFormat(numberFormat);……此处省略字体对齐等//千位加逗号⽤NumberFormat nf = new NumberFormat("#,##0");WritableCellFormat formate = new WritableCellFormat(nf);……此处省略字体对齐等//数字强制⽂本//下⾯代码插⼊以零开头的纯数字⽂本“000222”//sheet.addCell(new Label(33, rowNo,"000222", fromart));//虽然前⾯三个零会显⽰,但当我们双击单元格以后,前⾯的零会消失!!//解决办法:WritableCellFormat kodoFromart = new WritableCellFormat(NumberFormats.TEXT); …….此处省略字体对齐等sheet.addCell(new Label(33, rowNo,"000222", kodoFromart));写⼊:⽂本、数字、⼯式//⽂本写⼊第⼀列第⼆⾏插⼊⽂本“⽂本写⼊Test “,使⽤格式formatesheet.addCell(new Label(0, 1 ,”⽂本写⼊Test”, formate));//数字sheet.addCell(new jxl.write.Number(1, 1,99999 ,format));sheet.addCell(new jxl.write.Number(2, 1,99999 ,format));//插⼊⼯式sheet.addCell(new Formula(3, 1, “sum(B1:C1)”, format));。

Java操作Excel(poi、jxl_包介绍)

Java操作Excel(poi、jxl_包介绍)

笔记——Java操作Excel(poi,jxl)使用poi或jxl操作excel的时候,设置格式,是一件挺麻烦的事情,面对用户的各种格式设置需求,你可能跟我开始时一样,无从下手。

多数格式设置,大家在网上都能很容易的找到答案,但是有一些还难注意或发现。

下边分享一下我的经验:用poi设置excel格式Poi设置单元格格式一般使用HSSFCellStyle:HSSFWorkbook book = new HSSFWorkbook();…HSSFCellStyle style = book.createCellStyle();//创建单元格样式style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//设置水平居中style.setV erticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//设置垂直居中style.setBorderTop(HSSFCellStyle.BORDER.THIN);//单元格上边框style.setBorderBottom(HSSFCellStyle.BORDER.THIN);//单元格下边框style.setBorderLeft(HSSFCellStyle.BORDER.THIN);//单元格左边框style.setBorderRight(HSSFCellStyle.BORDER.THIN);//单元格右边框style.setWrapText(true);//设置自动换行(如果没设置高度,则自适应行高度)…HSSFFont font = book.createFont();//创建字体样式font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗…style.setFont(font);//给单元格设置字体样式…HSSFSheet sheet = book.createSheet(“工作表名称”);//创建工作表sheet.getPrintSetup().setLandscape(true);//页面设置横向打印…HSSFRow row = sheet.createRow(0);//第1行HSSFCell cell = row.createCell((shot)0);//第1列cell.setCellStyle(style);//给单元格设置样式cell.setCellV alue(new HSSFRichTextString(“单元格内容”));…Region region = new Region();region.setRowFrom(0);region.setRowTo(0);region.setColumnFrom((shot)0);region.setColumnTo((shot)12);sheet.addMergedRegion(region);//合并第1行的第1到13列用jxl设置excel格式Jxl设置单元格格式一般使用WritableCellFormat:WritableCellFormat format = new WritableCellFormat();//创建单元格样式format.setAlignment(Alignment.LEFT);//设置居左format.setBorder(Border.ALL,BorderLineStyle.THIN);//设置边框…format.setWarp(true);//设置自动换行(如果没设置高度,则自适应行高度)…WritableWorkBook book = null;…WritableSheet sheet = book.createSheet(“工作表名”,i);sheet.getSettings().setOrientation(NDSCAPE);//页面设置横向打印sheet.addCell(new Label(0,1, “单元格内容”,format));//给单元格设置样式sheet.mergeCells(0,2,18,2);//合并第3行的第1到19列不全,后续补充…。

Java操作Excel之JXL(填充EXCEL模板)转载

Java操作Excel之JXL(填充EXCEL模板)转载

Java操作Excel之JXL(填充EXCEL模板)转载Java操作Excel之理解JXL--读取Excel 说到如何⽤JXL读取Excel⽂件,现在来看看如何读取Excel模板然后把动态数据写⼊到模板以⽣成特定格式的Excel。

同样的思路,先来考虑下会涉及到那些对象,和上篇⽂章读取相⽐这⾥涉及到⼀个写⼊的步骤,所以JXL必然会提供⼀个对象来⽀持写⼊,这就是WritableWorkbook。

那么如何得到到这个类的实例,查看APIDoc发现Workbook类提供了⼏个静态的createWorkbook⽅法返回WritableWorkbook实例,可以看到众多createWorkbook⽅法主要分为两类:⼀个参数和两个参数。

简单分析可以得知前者仅仅是⽤来直接⽣成Excel⽂件,后者先读取模板再向模板写⼊数据然后⽣成Excel。

(还有⼀个三参数⽅法加上⼀个⽤来设置workbook的参数)现在按照上篇⽂章中所讲述的流程来看看读取模板并写⼊需要那些步骤。

第⼀步:选择模板⽂件:Workbook wb = Workbook.getWorkbook(new File(realpath));第⼆步:通过模板得到⼀个可写的Workbook:WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);第⼀个参数是⼀个输出流对象,⽐如可以ByteArrayOutputStream targetFile = new ByteArrayOutputStream();这样定义这个输出流对象。

第⼆个参数代表了要读取的模板。

第三步:选择模板中名称为StateResult的Sheet:WritableSheet wws = wwb.getSheet("StateResult");如果需要也可以创建SheetWritableSheet wws = wwb.createSheet("Sheet名称",i);第四步:选择单元格,写⼊动态值,根据单元格的不同类型转换成相应类型的单元格:Label A1 = (Label)wws.getWritableCell(0,0);A1.setString("单元格内容")或Number A2 = (Number)wws.getWritableCell(0,1);//Number是jxl.write.NumberA2.setValue(3.3);也可以创建新的单元格并且加⼊到Sheet中Label C1 = new Label(2,0,"单元格内容");wws.addCell(C1);或Number C1 = new Number(2,0,3.3);wws.addCell(C1);在⽣成Excel报表的时候还会遇到⼀种需求就是数据的格式问题,我们可能希望数值型单元格以某种格式显⽰,⽽字符串型单元格以另⼀种格式显⽰。

jxl基本操作

jxl基本操作

熟悉JXL的概念:工作簿Workbook 、工作表sheet、单元格cell// 1. 创建Workbook工作薄//使用file对象File file = new File("E:/student.xls");Workbook wb = Workbook.getWorkbook(file);// 使用inputInputStream input = new FileInputStream(file);Workbook wb = Workbook.getWorkbook(input);// 2. 获取Sheet工作表wb.getNumberOfSheets(); //sheet个数wb.getSheets().length; //sheet个数wb.getSheet(0).getName(); //获取sheetwb.getSheet("Sheet1").getName(); //sheet的名称// 行/列数sheet.getRows();sheet.getColumns();// 该行/列的单元格:cell[]sheet.getRow(0).length;sheet.getColumn(0).length;Cell cell = sheet.getCell(0, 0);cell.getContents(); //单元格内容String// cell的类型cell.getType() == BEL//class:LABEL单元格的类型:LabelCell ,NumberCell 等,无须进行数据类型的转换。

File file = new File("E:/student.xls");Workbook wb = Workbook.getWorkbook(file);Sheet sheet = wb.getSheet(0);int rows = sheet.getRows();int cols = sheet.getColumns();for (int row = 0; row < rows; row++) {for (int col = 0; col < cols; col++) {Cell cell = sheet.getCell(col, row); //注意:行列互换// System.out.println(cell.getContents());// 转换成相应的数据类型:无须进行“数据类型的转换”if (cell.getType() == BEL) {//Label是LabelCell的子类LabelCell labelCell = (LabelCell) cell;System.out.println(labelCell.getString()); // str}if (cell.getType() == CellType.NUMBER) {NumberCell numberCell = (NumberCell) cell;System.out.println(numberCell.getValue());//double}// 其他的子类:CellType.BOOLEAN/CellType.DATE// 释放资源:从“内存”中释放资源wb.close();}}读取XLS文件:封装成List<Bean>返回//封装成List<Bean>List<Goodinfo> goods = new ArrayList<Goodinfo>();for (int row = 2; row < rows - 1; row++) { //从数据Cell读取Goodinfo good = new Goodinfo(); //封装一条记录:Goodinfofor (int col = 0; col < cols - 1; col++) {Cell cell = sheet.getCell(col, row);switch (col) { //对该行的“不同”单元格进行判断case 0:good.setGoodCode(cell.getContents());break;//....case 3://转成相应的单元格类型:NumberCellNumberCell quantityCell = (NumberCell) cell;//double转成intgood.setQuantity((int)quantityCell.getValue())break;//....case 5:DateCell dateCell = (DateCell) cell; //DateCellgood.setArrivedDate(dateCell.getDate());break;default: //不合法的XLS格式throw new IllegalArgumentException("正在读写的xls文件未按照格式要求进行书写!");}}goods.add(good);}对XLS进行写出:// 1. 创建可写的工作簿workbook,使用fileWritableWorkbook wwb = Workbook.createWorkbook(file);//Workbook.createWorkbook(output); //output// 2. sheetWritableSheet ws = wwb.createSheet("进货记录", 0);// 3.文本型labelLabel label = new Label(0, 0, "进货记录");ws.addCell(label);字体与格式:// 4.设置字体:提供了丰富的构造函数WritableFont wf = new WritableFont(WritableFont.createFont("华文新魏"), 12, //JXL字体:WritableFont.TIMES,或者Excel支持的字体WritableFont.BOLD, true, //是否斜体UnderlineStyle.NO_UNDERLINE,Colour.VIOLET);// 仅仅设置格式format://WritableCellFormat wcf = new WritableCellFormat();// 5. 设置format和font:将wf构造注入WritableCellFormat wcf = new WritableCellFormat(wf);wcf.setAlignment(Alignment.RIGHT);wcf.setVerticalAlignment(VerticalAlignment.TOP); //垂直对齐方式//(不是JDK的Color),jxl.write.Colour已过期wcf.setBackground(jxl.format.Colour.YELLOW);wcf.setBorder(Border.BOTTOM, BorderLineStyle.THICK,jxl.format.Colour.RED); //// 构造器:可以没有colour //wcf.setWrap(true); //自动换行,而不是隐藏数据//wcf构造注入Label labelStyle = new Label(0, 1, "进货记录", wcf);ws.addCell(labelStyle);// 6. 设置width,heightws.setColumnView(0, 5); //0.5倍数ws.setColumnView(0, 10); //1倍数ws.setColumnView(0, 20); //2倍数//ws.setRowView(0, 10);ws.setRowView(1, 350); //较为正常的高度//7. cell合并:起始cell到终止cellws.mergeCells(0, 0, 3, 3);Label mergedLabel = new Label(0, 0,"合并单元格");ws.addCell(mergedLabel); //填充新的cell//8. 其他类型数据//数值型,以特定格式显示:原始数据未改变NumberFormat nf = new NumberFormat("#,###.00"); //不足补0 //注入nf和font:new WritableCellFormat(wf, nf); WritableCellFormat wcf2 = new WritableCellFormat(nf);//未设置wcf:new Number(0, 1, 12);Number quantity = new Number(1, 0, 35634.865,wcf2);ws.addCell(quantity);//日期型:可以使用sdf格式化成“字符串”,使用Label写出即可//DateTime arrivedTime = new DateTime(1, 1, new Date());//错误的日期:1899-12-30,必须设置格式DateFormat df = new DateFormat("yyyy年MM月dd日"); WritableCellFormat wcf3 = new WritableCellFormat(df); DateTime arrivedTime = new DateTime(1, 1, new Date(),wcf3); //原始数据:2013-7-16 11:30:36ws.addCell(arrivedTime);// 一定:写出,关闭,否则可能无数据wwb.write();wwb.close();/使用公式:使用Excel内建的公式,更加的灵活,功能强大,“无须大量的编码”//定义数据cellNumber one = new Number(0,0,15);Number two = new Number(1,0,2);//使用XLS自动生成公式:=PRODUCT(A1,B1),=MMULT(A2,B2),注意://必须是“大写”Formula pro1 = new Formula(2,0,"PRODUCT(A1,B1)"); //数的乘积ws.addCell(one);ws.addCell(two);ws.addCell(pro1);Formula pro2 = new Formula(2,1,"MMULT(A2,B2)"); //矩阵乘积System.out.println("pro = " + pro2.getContents());//合并单元格:求和ws.mergeCells(0,2,2,2);//多个单元格求和,使用一个矩阵:SUM(G3:G7)Formula sum = new Formula(0,2,"SUM(C1,C2)");ws.addCell(sum);//写入PNG图像,仅此格式,其他格式:无法显示WritableImage wi = new WritableImage(1, 1, 3, 7,new File("E:/haha.png")); //注意参数:3、7,指的是的单元格个数ws.addImage(wi);//对XLS进行拷贝、修改:场景(对xls“批量”操作:修改)Workbook wb = Workbook.getWorkbook(newFile("E:/student.xls")); //原始工作簿Workbook WritableWorkbook wwb = Workbook.createWorkbook(newFile("E:/student-2.xls"),wb); //拷贝的副本WritableSheet sheet = wwb.getSheet(0);Cell cell = sheet.getCell(0,0);if(cell.getType() == BEL) {Label label = (Label)cell;//LabelCell:无setString()方法,Label是LabelCell的子类型//System.out.println(label.getString());label.setString("超级市场进货记录");//覆盖原有格式:当前Cell的所有format和font都“丢失”掉了!WritableCellFormat wcf = new WritableCellFormat();wcf.setAlignment(Alignment.LEFT);label.setCellFormat(wcf);}wwb.write();wwb.close();wb.close();//批量导出demo//待导出的数据:List<Bean>public List<Goodinfo> getData() {//....new Date();//当前时间:new Date()//特定时间:使用GregorianCalendar构造,Date过期new GregorianCalendar(2013, 7, 15).getTime();}//标题title的格式:format和fontpublic WritableCellFormat getTitleFormat() {//字体fontWritableFont wf = new WritableFont(WritableFont.createFont("隶书"),15,WritableFont.NO_BOLD,true,UnderlineStyle.NO_UNDERLINE,Colour.RED);//格式formatWritableCellFormat titleFormat = new WritableCellFormat(wf);try {titleFormat.setAlignment(Alignment.CENTRE);titleFormat.setVerticalAlignment(VerticalAlignment.BOTTOM);titleFormat.setBackground(Colour.LIGHT_BLUE);titleFormat.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);titleFormat.setWrap(false);} catch (WriteException e) {e.printStackTrace();}return titleFormat;}//表格题目headerpublic WritableCellFormat getHeaderFormat(){//...}//表格体的通用样式commonpublic WritableCellFormat getCommonFormat(){//...}//价格format:需要构造传入参数WritableFont,NumberFormatpublic WritableCellFormat getPriceFormat() {WritableFont wf = new WritableFont(WritableFont.createFont("楷体_GB2312"), 11,WritableFont.NO_BOLD,false, UnderlineStyle.NO_UNDERLINE,Colour.GRAY_50);NumberFormat nf = new NumberFormat("#,###.00"); //不足补0WritableCellFormat priceFormat = new WritableCellFormat(wf, nf); //NumberFormat也作为参数传入//...return priceFormat;}//构造传入DateFormatpublic WritableCellFormat getDateTimeFormat() {//...WritableFont wf = new WritableFont(,,,);DateFormat df = new DateFormat("yyyy年MM月dd日");WritableCellFormat dateTimeFormat =new WritableCellFormat(wf,df);//...return dateTimeFormat;}//用作金额加总的格式public WritableCellFormat getAnalisisFormat() {//和getPriceFormat()类似return priceFormat;}//核心操作代码// sheetFile file = new File("E:/student-write.xls");WritableWorkbook wwb = Workbook.createWorkbook(file); WritableSheet ws = wwb.createSheet("进货记录", 0);// 设置row,col的宽度ws.setRowView(0, 450);ws.setColumnView(0, 15);//...// titlews.mergeCells(0, 0, 6, 0);Label title = new Label(0, 0, "进货记录", getTitleFormat());ws.addCell(title);// headerString[] header = new String[] { "商品编号", "品名", "单价(元)", "数量", "产地","到货日期", "小计(元)" };for (int i = 0; i < header.length; i++) {Label header_part = new Label(i, 1, header[i],getHeaderFormat());ws.addCell(header_part);}// bodyList<Goodinfo> goods = getData();for (int i = 0; i < goods.size(); i++) {//得到一条数据记录:goodGoodinfo good = goods.get(i);//循环添加各个字段:data_colfor (int j = 0; j < header.length - 1; j++) {Object data_col = null; //data_col放到switch外部,以便于统一添加switch (j) {case 0:data_col = new Label(j, 2 + i, good.getGoodCode(),getCommonFormat());break;//...case 2:data_col = new jxl.write.Number(j, 2 + i, good.getPrice(), getPriceFormat());break;//...case 5:data_col = new DateTime(j, 2 + i, good.getArrivedDate(), getDateTimeFormat());break;default:break;}ws.addCell((WritableCell) data_col); //可添加的是WritableCell }// 添加小计:使用PRODUCT(乘积)int row_num = i + 3;Formula subTotal = new Formula(header.length - 1, 2 + i,"PRODUCT(C" + row_num + ",D" + row_num + ")",getAnalisisFormat());ws.addCell(subTotal);}//footerLabel total_header = new Label(0, goods.size() + 2, "总计(元)", getHeaderFormat());ws.addCell(total_header);ws.mergeCells(1, goods.size() + 2, header.length - 1, goods.size() + 2);Formula total_body = new Formula(1, goods.size() + 2,"SUM(G3:G" + (2 + goods.size()) + ")", //:代表矩阵getAnalisisFormat());ws.addCell(total_body);wwb.write();wwb.close();。

Jxl设置列的格式为文本

Jxl设置列的格式为文本

//定义格式WritableCellFormat wcf = new WritableCellFormat(NumberFormats.TEXT); CellView cv = new CellView(); //定义一个列显示样式cv.setFormat(wcf);//把定义的单元格格式初始化进去cv.setSize(10*600);//设置列宽度(不设置的话是0,不会显示)sheet.setColumnView(4,cv);//设置工作表中第4列的样式Jxl解析方式1.主要类WritableWorkbook //整个文档对象WritableSheetWritableFontWritableCellFormat…Poi解析方式excel例子String message="";InputStream is = null;try {FileActionForm fileActionForm = (FileActionForm) form;is = fileActionForm.getFile().getInputStream();HSSFWorkbook hssfWorkbook = new HSSFWorkbook( is);HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);HSSFRow hssfRow1 = hssfSheet.getRow(1);HSSFRow hssfRow2 = hssfSheet.getRow(2);String depa_code = getCellValue(hssfRow1, 5);if(depa_code.equals("")){request.setAttribute("message", "单位编码未填写!");return mapping.findForward("importSuccess");}elseif(!this.getSessionDepa_Code(request).equals(depa_code)){request.setAttribute("message", "单位编码不正确!");return mapping.findForward("importSuccess");}Department department =this.getDepartmentByCode(depa_code);SecondImmuReportDTO secondImmuReport = new SecondImmuReportDTO();secondImmuReport.setSeir_depa_id(department.getDepa_id());secondImmuReport.setSeir_nationcode(depa_code);if("".equals(getCellValue(hssfRow1,1))||"".equals(getCellValue(hssfRow2, 1))){request.setAttribute("message", "年份或是月份未填写!");return mapping.findForward("importSuccess");}secondImmuReport.setSeir_statdate(getCellValue(hssfRow1, 1)+getCellValue(hssfRow2, 1));secondImmuReport.setSeir_resi_id(1);//户籍住址secondImmuReport.setSeir_countycheck("0");secondImmuReport.setSeir_countyupload("0");secondImmuReport.setSeir_citycheck("0");secondImmuReport.setSeir_cityupload("0");secondImmuReport.setSeir_provincecheck("0");secondImmuReport.setSeir_provinceupload("0");//先按照单位code 年月份某一个疫苗codesecondImmuReport.setQueryOneSql("selectOneSecondImmuReport");secondImmuReport.setSeir_bact_code("02");SecondImmuReportDTO secondImmuReport1 = (SecondImmuReportDTO)this.processCommandForObject(MON_COMMAND,Constant.REQUEST_ACTION_COMMONQUERYONE, secondImmuReport, secondImmuReport);if(null!=secondImmuReport1){if(secondImmuReport1.getSeir_countycheck().equals("1")){//已经存在且区县已经审核过,不让导入request.setAttribute("message", "这个月份已经导入过数据,且上级已经审核,不能再导入!");return mapping.findForward("importSuccess");}else{//删除此单位,这个年月份的secondImmuReport.setDeleteSql("secondImmuReportDeleteAllByKeys");this.processCommandForObject(MON_COMMAND, Constant.REQUEST_ACTION_COMMONDELETE, secondImmuReport, secondImmuReport);message = "这个月份已经导入过数据,现在更新成功!";}}secondImmuReport.setInsertSql("secondImmuReportInsert");String [][]bact_code ={{"02","2501"},{"06","9202"},{"14","29"},{"13","34"},{"12","36"},{"11 ","28"},{"10","44"},{"1801","43"},{"1802","30"},{"1602","33"},{"1703","37"},{"1901","35"},{"1903","38"},{"2001","47"},{"2301","48"},{"22","26"},{"24","0303"},{"21","50"}};//按照导入模板疫苗顺序for(int i=5;i<23;i++){//添加HSSFRow hssfRow = hssfSheet.getRow(i);for(int j= 0;j<2;j++){secondImmuReport.setSeir_bact_code(bact_code[i-5][j]);secondImmuReport.setSeir_inoculated(Integer.parseInt(getCellValue (hssfRow,(2*j)+1)));this.processCommandForObject(MON_COMMAND, Constant.REQUEST_ACTION_COMMONINSERT, secondImmuReport, secondImmuReport);}}if("".equals(message)){message = "添加成功!";}} catch (Exception e) {message = "添加失败,可能是填写格式不对!";e.printStackTrace();} finally{is.close();}request.setAttribute("message", message);}return mapping.findForward("importSuccess");。

JXL操作EXCEL的常用类方法参数解析

JXL操作EXCEL的常用类方法参数解析

1. JXL操作EXCEL的常用类方法参数解析Excel的生成方式其实很简单,主要包括几个大的类首先最重要的几个类就是WritableWorkbook,这个类代表的就是一个Excel文档,使用过Excel文档的都应该知道Excel文档的组成,都是由一个一个的sheet组成的,那么这个sheet对应的java类就是WritableSheet。

实际上就是这两个大类的组成,其他的一些小的类都是为了修饰WritableSheet里的内容的。

这些修饰类中用的最多的就是WritableFont ,WritableCellFormat,以及Label类,这三个类构成了修WritableSheet的核心。

<一>抽象类Workbook该类相当于是一个工具类用于生成Excel方法:(1)createWorkbook(File file)createWorkbook(File file,Workbook in)createWorkbook(java.io.OutputStream os)提供了各种形式的产生Excel的方式(2)findByName(String name)该方法的作用是获得名称为name的Range的数组(3)findCellByName(String name)该方法的作用是根据name来获取对应的cell对象(4)getCell(String location)该方法的作用是根据location来获得对应的cell对象(5)getNumberOfSheets()该方法的作用是是获得sheet的总个数(6)getRangeNames()该方法的作用是获得所有Range对象名称的数组(7)getSheet(int index)该方法的作用是根据下标来获取对应的sheet对象(8)getSheet(String name)该方法的作用是根据sheet的名称来获得对应的sheet对象(9)getSheetNames()该方法的作用是获得所有sheet的名称所在的数组(10)getSheets()该方法的作用是获得所有sheet对象所在的数组(11)getVersion()该方法的作用是获得版本号(12)getWorkbook(File file)该方法的作用就是获得一个Excel对象(13)getWorkbook(File file,WorkbookSettings wss)该方法的作用是获取一个Excel对象(14)isProtected()该方法的作用是Excel是否是受保护的<二>WritableWorkbook该类是一个实际的可写的Workbook(1)createSheet(ng.String name,int index)该方法的作用是创建一个WorkSheet放在指定的位置(2)copy (Workbook book)该方法的作用是复制WritableWorkbook(3)copySheet(int s,String name,int index)该方法的作用是复制同一个workbook里处于s位置的sheet放到新的位置index处(4)findByName(String name)该方法的作用是获得名称为name的Range对象的数组(5)findCellByName(String name)该方法的作用是获取名称为name的WritableCell对象(6)getNumberOfSheets()该方法的作用是获得workbook里sheet的个数(7)getRangeNames()该方法的作用是获得所有Range对象的名称所在的数组(8)getSheet(int index)该方法的作用根据位置获取WritableSheet(9)getSheet(String name)该方法的作用是根据名称来获去WritableSheet(10)getSheetNames()该方法的作用是获得workbook里的所有sheet的名称所在的数组(11)getSheets()该方法的作用是获得workbook里的所有的sheet所在的数组(12)importSheet(String name,int index, Sheet sheet)该方法的作用是从另外一个workbook里倒入一个sheetname为新生成的sheet的名称,index为新的sheet在当前workbook里所处的位置(13)moveSheet(int from,int to)该方法的作用是移动一个sheet从from位置到to位置(14)removeRangeName(String name)该方法的作用是移除名称为name的Range对象(15)removeSheet(int index)该方法的作用是移除在index位置的sheet对象(16)setColorRGB(Colour c,int r,int g,int b)该方法的作用是个workbook设置一定的颜色(17)setOutputFile(File file)该方法的作用不太明确(18)setProtected(Boolean protected)该方法的作用是设置workbook是否为被保护(19)write()该方法非常重要,也就是生成一个Excel文档(20)close()该方法非常重要,在最后需要调用这个方法,才能使生成的Excel有效生成,否则,不写此句的话将会导致生成的Excel文件在打开时提示“文件的格式与扩展名指定的格式不一致”<三>接口WritableSheet(1)addCell(WritableCell cell)该方法的作用是添加单元格需要注意的是一个Cell/Label只能使用一次(2)addColumnPageBreak(int break)该方法的作用不详(3)addHyperlink(WritableHyperlink link)该方法的作用是设置超链接(4)addImage(WritableImage image)该方法的作用是向Excel中添加图片对于JExcelAPI来说只支持对PNG图片的操作,而POI的功能则会更加强大一些(5)addRowPageBreak(int break)该方法的作用不详同addColumnPageBreak(int break)一样(6)getImage(int i)该方法的作用是获得sheet中的图片(7)getNumberOfImages()该方法的作用是获得sheet中的图片总数(8)getWritableCell(int column,int row)该方法的作用是获得具体的某个单元格(9)getWritableHyperlinks()该方法的作用是获得sheet里的所有超链接(10)insertColumn(int col)该方法的作用是添加一列(11)insertRow(int row)该方法的作用是添加一行(12)mergeCells(int col1,int row1,int col2,int row2)该方法的作用是合并单元格其中参数指的是需要合并的两个单元格所处的位置,也就是合并这两个单元格之间的所有单元格(13)removeColumn(int col)该方法的作用是删除某一列(14)removeHyperlink(Hyperlink link)该方法的作用是删除某一个超链接(15)removeImage(WritableImage image)该方法的作用是删除图片(16)removeRow(int row)该方法的作用是删除一行(17)setColumnGroup(int col1, int col2, boolean collapsed)该方法的作用是设置一个column组(18)setName(String sheetname)该方法的作用是设置sheet的名称(19)setRowGroup(int row1,int row2,Boolean collapsed) 该方法的作用是设置一个row组(20)unmergeCells(Range r)该方法的作用是合并单元格(21)unsetColumnGroup(int col1,int col2)该方法的作用是解除column组,该方法是相对于setColumnGroup方法(22)unsetRowGroup(int row1,int row2)该方法的作用是解除row组,该方法是相对于setRowGroup方法的(23)setColumnView(int column,int width)该方法的作用是设置一个某一列的宽度(24)setRowView(int row,int height)该方法的作用是设置某一行的高度<四>接口WritableCell(1) copyTo(int col,int row)该方法的作用是深克隆某一行的某一列(2)getWritableCellFeatures()该方法的作用是获得WritableCellFeatures(3)setCellFeatures(WritableCellFeatures wfs) 该方法的作用是设置WritableCellFeatures (4)setCellFormat(CellFormat cf)该方法的作用是对列表进行格式排版<五>WritableCellFeatures<六>WritableFont该类用于设定Excel的字体(1)构造函数a. WritableFont(Font f)b. WritableFont(WritableFont.fontName fn)根据WritableFont的常量来创建WritableFontc. WritableFont(WritableFont.fontName fn, int size)根据WritableFont的常量以及字体的大小来创建WritableFontd. WritableFont(WritableFont.fontName fn, int size, WritableFont.BoldStyle fb)根据WritableFont的常量、字体的大小以及字体的粗细来创建WritableFonte. WritableFont(WritableFont.fontName fn, int size, WritableFont.BoldStyle fb, boolean italic)根据WritableFont的常量、字体的大小、字体的粗细以及是否斜体来创建WritableFontf.WritableFont(WritableFont.FontName fn,int ps,jxl.write.WritableFont.BoldStyle bs,boolean it, UnderlineStyle us)根据WritableFont的常量,字体的大小,字体的粗细,是否斜体,下划线样式来创建WritableFontg. WritableFont(WritableFont.FontName fn,int ps,jxl.write.WritableFont.BoldStyle bs,boolean it, UnderlineStyle us, Colour c)根据WritableFont的常量,字体的大小,字体的粗细,是否斜体,下划线样式以及颜色来创建WritableFonth. WritableFont(WritableFont.FontName fn,int ps,jxl.write.WritableFont.BoldStyle bs,boolean it, UnderlineStyle us, Colour c, ScriptStyle ss) 根据WritableFont的常量,字体的大小,字体的粗细,是否斜体,下划线样式,颜色以及脚本来创建WritableFont(2)createFont(ng.String fontName)该方法的作用是根据名称来设置Excel的title的字体(3)setBoldStyle(BoldStyle boldStyle)该方法的作用是设置Excel的title字体的粗细,但是对应的值只有两个WritableFont.BOLD和WritableFont.NO_BOLD(4)setColor(Color color)该方法的作用是设置Excel的title字体的颜色(5)setItalic(Boolean italic)该方法的作用是设置Excel的title字体是否为斜体(6)setPointSize(int size)该方法的作用是设置Excel的title字体的大小(7)setScriptStyle(ScriptStyle ss)该方法的作用是设置Excel的title的效果,有三个值可供选择ScriptStyle.SUBSCRIPT,ScriptStyle.SUPSCRIPT,ScriptStyle.NOMAL_SCRIPT例如如果设置setScriptStyle(ScriptStyle.SUPSCRIPT)是如下效果如果设置为SUBSCRIPT的话就是如下的样式如果不做设置的话,即默认为NOMAL_SCRIPT则为如下所示(8)setUnderlineStyle(UnderlineStyle us)该方法的作用是设置下划线的样式存在以下值可供选择UnderlineStyle.DOUBLEUnderlineStyle.DOUBLE_ACCOUNTINGUnderlineStyle.NO_UNDERLINEUnderlineStyle.SINGLEUnderlineStyle.SINGLE_ACCOUNTING从上面的结果可以得出SINGLE和DOUBLE只是在字体范围内加下划线,而SINGLE_ACCOUNTING和DOUBLE_ACCOUNTING则是在整个标题的范围内加下划线<六>类Label该类的作用是设置列里的文本信息,此类实现了WritableCell接口(1)构造函数a. Label(int c, int r ,ng.String cont)设置指定的行列的文本信息b. Label(int c,int r,ng.String cont,CellFormat st)设置指定的行列的的文本信息以及列的格式(这个构造是用的比较多的)c. Label(LabelCell lc)根据LabelCell创建Label(2)copyTo(int c, int r)该方法的作用是深克隆指定的某一行的某一列(3)setString(String content)该方法的作用是设置某一列的内容<七>类WritableCellFormat该类的作用是设置列表的格式尤其要注意的是在实际的使用过程中WritableCellFormat是同WritableFont,Label 共同使用的例如:WritableWorkbook book=Workbook.createWorkbook(new File(String path));WritableSheet sheet=book.createSheet(String sheetname,int index);WritableFont font=new WritableFont(WritableFont.fontname ,fontsize,BoldStyle.boldstylename);WritableCellFormat format=new WritableCellFormat(font);Label label=new Label(int column,int row,String content,WritableCellFormat format);sheet.addCell(label);(1)构造函数a. WritableCellFormat()默认的构造函数b. WritableCellFormat(CellFormat format)c. WritableCellFormat(DisplayFormat format)d. WritableCellFormat(WritableFont font)e. WritableCellFormat(WritableFont font,DisplayFormat format)(2)setAlignment(Alignment align)该方法的作用是设置表格的对齐方式可供选择的值有jxl.format.Alignment.CENTREjxl.format.Alignment.FILLjxl.format.Alignment.GENERALjxl.format.Alignment.JUSTIFYjxl.format.Alignment.LEFTjxl.format.Alignment.RIGHT(3)setBackground(Colour c)该方法的作用是设置cell的背景颜色可选的值均为Colour的常量对象(4)setBackground(Colour c,Pattern p) 该方法的作用是设置cell的背景颜色和形式(5)setBorder(Border b,BorderLineStyle bs) 该方法的作用是设置Border(6)setBorder(Border b,BorderLineStyle bs,Colour c) 该方法的作用也是设置Border(7)setIndentation(int identation)该方法的作用是设置单元格的缩进量(8)setLocked(Boolean lock)该方法的作用设置此列的style是否锁定(9)setOrientation(Orientation.orientationname) 该方法的作用是设置列的方向如下图为没有设置时的呈现下图为设置为Orientation.VERTICAL后的效果下图为设置为Orientation.MINUS_45后的效果,所谓MINUS_45表示的也就是整个表格呈现负的45度的效果,如果为Orientation.PLUS_45,则表示的是列表呈现正的45度的效果下图为设置为Orientation.HORIZONTAL后的效果实际上在没有专门给定值的时候,默认值就是HORIZONTAL(10)setShrinkToFit(Boolean flag)该方法的作用是设置自适应大小(11)setVerticalAlignment(VerticalAlignment.alignment) 该方法的作用是设置单元格的垂直对齐方式可供选择的值有VerticalAlignment.TOP/CENTER/BOTTOM/JUSTIFY (12)setWrap(Boolean flag)该方法的作用是设置自动换行<八>类WorkbookSettings(1)setArrayGrowSize(int size)该方法的作用设置Workbook的内存大小,用于保存Workbook里的数据(2)setAutoFilterDisabled(Boolean flag)该方法的作用是设置是否启用自动过滤(3)setCellValidationDisabled(Boolean flag)该方法的作用是设置单元格的验证是否启用(4)setCharacterSet(int cs)该方法的作用是设置Workbook的字符集(5)setDrawingDisabled(Boolean flag)该方法的作用不详(6)setEncoding(String encoding)该方法的作用是设置Workbook的字符编码(7)setExce9file(Boolean excel9file)该方法的作用不详(8)setExcelDisplayLanguage(String language)该方法的作用是设置设置Workbook里的语言(9)setExcelRegionalSettings(String regional)根据字面意思来讲这个方法的作用是设置Workbook的区域信息(10)setFormulaAjust(Boolean flag)该方法的作用是设置是否启用公式调节(11)setGCDisabled(Boolean flag)该方法的作用是设置是否启用垃圾回收机制(12)setIgnoreBlanks(Boolean flag)该方法的作用是设置是否忽略空白(13)setInitialFileSize(int size)该方法的作用是设置文件的初始大小(14)setMergedCellChecking(Boolean flag)该方法的作用是设置是否启用合并列表的检查(15)setRationalization(Boolean flag)该方法的作用是设置在生成Excel前是否合理化设置cellFormat(16)setSuppressWarning(boolean flag) 该方法的作用是设置是否隐藏警告(17)setTemplate(Boolean flag)该方法的作用是设置是否启用模板。

java jxl 单元格宽度样式

java jxl 单元格宽度样式

java jxl 单元格宽度样式Java jxl库是一款操作excel的Java第三方库,它可以对excel进行读取、写入、修改、合并等各种操作。

在Jxl中,单元格宽度样式是其中的一种常用功能。

本文将详细介绍如何通过jxl库进行单元格宽度样式的操作。

一、单元格宽度样式概述在excel中,单元格的宽度可以通过拖动列的边框来调整大小。

但是,如果我们需要定制某一列的宽度,或者需要一次性对多个单元格进行宽度的调整,手动拖动不仅费时费力,还容易出错。

这时,我们可以通过代码来设置单元格的宽度,实现更加自动化和高效的操作。

在jxl中,单元格的宽度使用的是宽度值,宽度值的单位是1/256个字符宽度。

因此,如果要设置单元格宽度为30个字符,则需要设置单元格宽度为30*256。

二、单元格宽度样式实现在jxl中,要设置单元格宽度样式需要使用WritableCellFormat类,并通过setWidth方法设置单元格的宽度值。

1. 设置单元格宽度以下代码为设置单元格宽度的示例:WritableCellFormat wcf = new WritableCellFormat();wcf.setWidth(20);2. 合并单元格并设置整行或整列的宽度如果要合并多个单元格并设置整行或整列的宽度,需使用setMerge方法设置单元格合并,使用setWidth方法设置整行或整列的宽度。

以下代码为合并单元格并设置整行或整列宽度的示例:WritableSheet sheet = workbook.createSheet("Sheet1", 0); WritableCellFormat wcf = new WritableCellFormat();wcf.setAlignment(Alignment.CENTRE);wcf.setVerticalAlignment(VerticalAlignment.CENTRE);wcf.setBorder(Border.ALL, BorderLineStyle.THIN);wcf.setBackground(Colour.GRAY_25);wcf.setWrap(true);WritableFont wf = new WritableFont(WritableFont.createFont("Arial"), 10, WritableFont.BOLD, false);wcf.setFont(wf);sheet.mergeCells(0, 0, 4, 0);sheet.setRowView(0, 500);sheet.setColumnView(0, 20);Label titleLabel = new Label(0, 0, "Title", wcf);sheet.addCell(titleLabel);在此示例中,我们首先创建了一个WritableSheet对象,并为其设置了样式。

jxl基础

jxl基础

1. 先建立Workbook也就是整份的Excel檔案,可指定檔名。

Workbook workbook = Workbook.getWorkbook(new File("test.xls"));2. 建立Sheet也就是每個Excel檔案下面可以跳tag的sheet表。

Sheet sheet = workbook.createSheet("我的Excel表", 0);第一個參數是sheet name,第二個參數是第幾張sheet,當然index是由0開始算。

3. 建立字型WritableFont chFont11w = new WritableFont(WritableFont.TIMES, 11);chFont11w.setColour(Colour.WHITE);先建立一個WritableFont的instance,其constructor的第一個參數是指定字型,第二個是字型大小。

其中字型的部份,可以使用WritableFont所提供預設的一堆static常數來指定,也可以直接輸入string,比如打"標楷體",到時產生的字型就會依照你所指定的來顯示。

而setColour是指定此字型的顏色,這個部份就麻煩。

(由colour這個字來看,很顯然的JExcel應是英國相關的人開發的:P 反正總之不會是美國)顏色為什麼麻煩呢?在JExcel裡面,Colour class並不提供public constructor讓user自己指定RGB的顏色,所以你只能從Colour中一堆的static常數顏色來指定,之前為了這個問題還研究了一下他的原始碼,果然是不行,他的constructor是protected的,就連繼承之後雖然可以指定rgb顏色,但是仍然沒有作用。

(後來我看了一下Excel,發現原來這是因為Excel的標準調色盤就那些顏色不像Word一樣可以讓使用者自訂顏色的關係)查API doc就可以看到,他提供的顏色有:static Colour AQUAstatic Colour AUTOMATICstatic Colour BLACKstatic Colour BLUEstatic Colour BLUE_GREYstatic Colour BLUE2static Colour BRIGHT_GREENstatic Colour BROWNstatic Colour CORALstatic Colour DARK_BLUEstatic Colour DARK_BLUE2static Colour DARK_GREENstatic Colour DARK_PURPLEstatic Colour DARK_RED2static Colour DARK_TEALstatic Colour DARK_YELLOWstatic Colour DEFAULT_BACKGROUND static Colour DEFAULT_BACKGROUND1 static Colour GOLDstatic Colour GRAY_25static Colour GRAY_50static Colour GRAY_80static Colour GREENstatic Colour GREY_25_PERCENTstatic Colour GREY_40_PERCENTstatic Colour GREY_50_PERCENTstatic Colour GREY_80_PERCENTstatic Colour ICE_BLUEstatic Colour INDIGOstatic Colour IVORYstatic Colour LAVENDERstatic Colour LIGHT_BLUEstatic Colour LIGHT_GREENstatic Colour LIGHT_ORANGEstatic Colour LIGHT_TURQUOISEstatic Colour LIGHT_TURQUOISE2 static Colour LIMEstatic Colour OCEAN_BLUEstatic Colour OLIVE_GREENstatic Colour ORANGEstatic Colour PALE_BLUEstatic Colour PALETTE_BLACKstatic Colour PERIWINKLEstatic Colour PINKstatic Colour PINK2static Colour PLUMstatic Colour PLUM2static Colour REDstatic Colour ROSEstatic Colour SEA_GREENstatic Colour SKY_BLUEstatic Colour TANstatic Colour TEALstatic Colour TEAL2static Colour TURQOISE2static Colour TURQUOISEstatic Colour VERY_LIGHT_YELLOWstatic Colour VIOLETstatic Colour VIOLET2static Colour WHITEstatic Colour YELLOWstatic Colour YELLOW2上面列了這麼多,哪知道哪一個真正的顏色是怎麼樣?除非自己邊試邊換才知,這太麻煩了,我寫了一隻程式把所有的顏色都印出來:好了,但問題來了,上面提供的顏色如果對比較龜毛的人而言(比如我...),一定是不足使用的,但如剛剛上述說的,Colour不提供自訂顏色的功能,後來找了老半天文件,終於找到一個可以用的方式,就是在workbook中,提供了一個setColourRGB的method,但這個method並不是設定新的顏色,而是可以把上述提供的顏色重新覆寫其RGB設定值,這個方法雖然不是挺好,但是終於有救了!所以你就找個顏色來開刀,例如:workbook.setColourRGB(Colour.DARK_GREEN, 0xDB, 0xF4, 0x8E);我把DARK_GREEN的RGB改寫成#DBF48E (0x表示16進位)(你要什麼顏色而有什麼16進位色碼,很多方法可以取得,比如:photoshop、Dreamweaver 等)這樣一來,之後再使用Colour.DARK_GREEN,就會變成我們想要的顏色了。

使用jxl将excel行转列输出

使用jxl将excel行转列输出

使用jxl将excel行转列输出写在前面的话:最近工作时候领导让我们将如下样式的excel导入到库中刚开始以为是正常的excel导入,结果仔细一看!!字段是竖着的。

正常的字段是横着的,结果这货给的数据是竖着的。

反人类了!所以我们称这个功能是:反人类。

玩笑归玩笑但是没办法领导让做的。

只好做了。

下面是凯哥写的使用jxl将excel的行转列。

使用到的jar:Code:主要的实现方法:/*** excel 列转行** @parma n 表示截断excel的多少列为一行既是数据数量**/publicvoid rowcolumn(String inputfilename,String ouputfilename){intn;Workbook wb = null;WritableSheet ws = null;bel lable = null ;WritableWorkbook wwb = null;//大的第二行的插入行的起始位置intstarth = 0;intc=0;try {wb = Workbook.getWorkbook(new File(inputfilename));} catch (Exception e) {e.printStackTrace();System.out.println(e);}if(null == wb){return;}Sheet [] sheet = wb.getSheets();//获取工作表对象if(null != sheet && sheet.length >0){//创建第一个工作薄对象try {wwb = Workbook.createWorkbook(new File(ouputfilename));if(null != wwb){//创建一个可以写入的表。

第一个是工作薄名、第二个是工作薄的位置ws = wwb.createSheet("sheet1", 0);}} catch (Exception e) {e.printStackTrace();System.out.println(e);}for (inti = 0; i < sheet.length; i++) {//这里一般是由一个sheet 的intrownum = sheet[i].getRows();//工作薄对象的行数intcolumn = sheet[i].getColumns();System.out.println(rownum +" , "+column);n = rownum+1;for (intj = 0; j < column; j++) {//得到当前行的所有单元格Cell [] cell = sheet[i].getColumn(j);System.out.println("cell:"+cell);if(null != cell && cell.length>0){//写入excel文件的行数inthang = (j+1)*(((rownum-1)/rownum+1));//插入位置应该接着上次插入的最后一行的下一行开始for (intk = starth; k <hang; k++) {//写入文件的行数for (intk2 = 0; k2 < n; k2++) {if(0 == k2){lable = new bel(k2,k,cell[0].getContents()); }else{c++;if(c >= cell.length){lable = new bel(k2, k, "");c = 0;}else{lable = new bel(k2,k, cell[c].getContents()); System.out.println("----" + cell[c].getContents());}}try {ws.addCell(lable);//添加到excel} catch (Exception e) {System.out.println(e);}}}starth = hang;//把最后一行号赋值给第二个大行的插入位置System.out.println("start>>>"+starth);}}}}try {wwb.write();//写入excel文件wwb.close();} catch (Exception e) {System.out.println(e);}}测试方法:package com.kaigejava.poi;import java.io.File;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;/**** @author 凯哥java 反人类的excel导入。

jxl 单元格格式 长数字处理

jxl 单元格格式 长数字处理

JXL是一款Java语言的Excel文件操作工具,可以方便地读取和写入Excel文件。

在使用JXL时,经常会遇到一些长数字的处理问题,比如会出现科学计数法显示,或者精度丢失等情况。

本文将结合实际问题进行讨论,介绍JXL中处理长数字的方法。

1. 长数字的表示在Excel中,长数字通常是指位数较多的数字,比如唯一识别信息、唯一识别号号等。

这些数字在Excel中显示时,可能会出现科学计数法的显示,比如1.23E+12,或者出现精度丢失的情况。

这给数据的准确性和可读性带来了困扰。

2. JXL读取长数字在使用JXL读取Excel文件时,如果单元格中的数据是长数字,可能会出现科学计数法的显示。

这是因为JXL默认采用科学计数法来表示较大的数字。

为了解决这个问题,可以通过设置单元格的格式来改变其显示方式。

3. 设置单元格的格式通过JXL可以设置单元格的格式,包括数据格式、对齐方式、字体颜色等。

要想显示长数字,可以将单元格的格式设置为文本格式,这样就能够正常显示所有位数的数字了。

4. 示例代码下面是一个使用JXL读取Excel文件,并设置单元格格式的示例代码:```File file = new File("test.xls");WorkbookSettings settings = new WorkbookSettings(); settings.setEncoding("ISO-8859-1");Workbook workbook = Workbook.getWorkbook(file, settings); Sheet sheet = workbook.getSheet(0);Cell cell = sheet.getCell(0, 0);WritableCellFormat format = newWritableCellFormat(NumberFormats.TEXT);WritableCell cell = sheet.getWritableCell(0, 0);cell.setCellFormat(format);String value = cell.getContents();System.out.println(value);```5. 长数字的写入除了读取长数字,有时候也需要向Excel文件中写入长数字。

java jxl 单元格边框样式

java jxl 单元格边框样式

一、介绍Java jxl是一个流行的Java语言excel操作工具,可以用于读取、写入和操作excel文件。

在使用jxl进行excel文件操作的过程中,我们常常需要对单元格的边框样式进行定制化设置,以满足我们的具体需求。

本文将介绍如何使用Java jxl来设置单元格的边框样式。

二、导入相关类库在使用Java jxl进行excel操作之前,我们首先需要导入相关的类库。

我们需要导入jxl包以及相关的IO流包。

import jxl.Workbook;import bel;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import jxl.write.biff.RowsExceededException;import java.io.File;import java.io.IOException;三、创建excel文件和工作表在使用Java jxl设置单元格边框样式之前,我们需要先创建一个excel文件和工作表。

// 创建excel文件WritableWorkbook workbook =Workbook.createWorkbook(new File("test.xls"));// 创建工作表WritableSheet sheet = workbook.createSheet("Sheet1", 0);四、设置单元格的边框样式1. 设置线条的粗细在Java jxl中,我们可以通过WritableSheet类的setRowView和setColumnView两个方法来设置单元格的行高和列宽,从而间接地控制单元格的边框线条的粗细。

// 设置行高sheet.setRowView(0, 500);// 设置列宽sheet.setColumnView(0, 20);2. 设置边框的颜色在Java jxl中,我们可以通过WritableSheet类的setCellFormat 方法来设置单元格的格式,从而间接地控制单元格的边框颜色。

比较详细的JXL格式设置

比较详细的JXL格式设置

⽐较详细的JXL格式设置以下是copy别⼈的,没有测试。

只是为了关注其中的jxl的格式设置import java.io.File;import junit.framework.TestCase;import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Border;import jxl.format.BorderLineStyle;import jxl.format.Colour;import jxl.format.VerticalAlignment;import bel;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;public class TestExcel extends TestCase {public void testExcel1() {try {WritableWorkbook workbook = Workbook.createWorkbook(new File("d:/留⾔信息.xls"));WritableSheet sheet = workbook.createSheet("留⾔信息", 0);sheet.setColumnView(0, 5); // 第1列sheet.setColumnView(1, 12); // 第2列sheet.setColumnView(2, 10);sheet.setColumnView(3, 22);sheet.setColumnView(4, 15);sheet.setColumnView(5, 23);sheet.setColumnView(6, 40);// 设置⾏⾼sheet.setRowView(0, 1600, false);sheet.setRowView(1, 400, false);sheet.setRowView(7, 400, false);// 设置页边距sheet.getSettings().setRightMargin(0.5);// 设置页脚sheet.setFooter("", "", "测试页脚");// 字体WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 14,WritableFont.BOLD);WritableFont tableFont = new WritableFont(WritableFont.ARIAL, 12,WritableFont.NO_BOLD);WritableFont baodanFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);// ⽤于标题WritableCellFormat wcf_title = new WritableCellFormat(BoldFont);wcf_title.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条wcf_title.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_title.setAlignment(Alignment.CENTRE); // ⽔平对齐wcf_title.setWrap(true); // 是否换⾏// ⽤于表格标题WritableCellFormat wcf_tabletitle = new WritableCellFormat(tableFont);wcf_tabletitle.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条wcf_tabletitle.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐 wcf_tabletitle.setAlignment(Alignment.CENTRE); // ⽔平对齐wcf_tabletitle.setWrap(true); // 是否换⾏// ⽤于正⽂左WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);wcf_left.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_left.setAlignment(Alignment.LEFT);wcf_left.setWrap(true); // 是否换⾏// ⽤于正⽂左WritableCellFormat wcf_center = new WritableCellFormat(NormalFont);wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐 wcf_center.setAlignment(Alignment.CENTRE);wcf_center.setWrap(true); // 是否换⾏// ⽤于正⽂右WritableCellFormat wcf_right = new WritableCellFormat(NormalFont);wcf_right.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_right.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_right.setAlignment(Alignment.RIGHT);wcf_right.setWrap(false); // 是否换⾏// ⽤于跨⾏WritableCellFormat wcf_merge = new WritableCellFormat(NormalFont);wcf_merge.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_merge.setVerticalAlignment(VerticalAlignment.TOP); // 垂直对齐wcf_merge.setAlignment(Alignment.LEFT);wcf_merge.setWrap(true); // 是否换⾏WritableCellFormat wcf_table = new WritableCellFormat(NormalFont);wcf_table.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_table.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_table.setAlignment(Alignment.CENTRE);wcf_table.setBackground(Colour.GRAY_25);wcf_table.setWrap(true); // 是否换⾏// 合并单元格,注意mergeCells(col0,row0,col1,row1)// --列从0开始,col1为你要合并到第⼏列,⾏也⼀样sheet.mergeCells(0, 0, 6, 0);sheet.addCell(new Label(0, 0, "怀化君源华天⼤酒店留⾔信息", wcf_title)); // sheet.mergeCells(0, 1, 1, 1);// sheet.mergeCells(2, 1, 5, 1);// sheet.addCell(new Label(0, 1, "", wcf_center));// sheet.addCell(new Label(2, 1, "姓名:" + "supercrsky",wcf_center));//// sheet.mergeCells(0, 2, 1, 2);// sheet.mergeCells(2, 2, 3, 2);//// sheet.addCell(new Label(0, 2, "单位:", wcf_center));// sheet.addCell(new Label(2, 2, "ChinaLong", wcf_center));// sheet.addCell(new Label(4, 2, "薪⽔", wcf_center));// sheet.addCell(new Label(5, 2, "5000", wcf_center));//// sheet.mergeCells(0, 3, 1, 3);// sheet.mergeCells(2, 3, 3, 3);//// sheet.addCell(new Label(0, 3, "性别:", wcf_center));// sheet.addCell(new Label(2, 3, "男", wcf_center));// sheet.addCell(new Label(4, 3, "婚否:", wcf_center));// sheet.addCell(new Label(5, 3, "否", wcf_center));//// sheet.mergeCells(0, 4, 1, 4);// sheet.mergeCells(2, 4, 3, 4);//// sheet.addCell(new Label(0, 4, "是否在职:", wcf_center)); // sheet.addCell(new Label(2, 4,"是",// wcf_center));// sheet.addCell(new Label(4, 4,"⼯作经验:", wcf_center)); // sheet.addCell(new Label(5, 4, "4",wcf_center));//// sheet.mergeCells(0, 5, 1, 5);// sheet.mergeCells(2, 5, 3, 5);//// sheet.addCell(new Label(0, 5, "保险费:", wcf_center));// sheet.addCell(new Label(2, 5,"50",// wcf_center));// sheet.addCell(new Label(4, 5, "保险⾦额:", wcf_center)); // sheet.addCell(new Label(5, 5, "50000",// wcf_center));//// sheet.mergeCells(0, 6, 1, 6);// sheet.mergeCells(2, 6, 3, 6);//// sheet.addCell(new Label(0, 6, "⼯作地点:", wcf_center)); // sheet.addCell(new Label(2, 6, "北京", wcf_center));// sheet.addCell(new Label(4, 6, "开⼼度:", wcf_center)); // sheet.addCell(new Label(5, 6, "⼀般", wcf_center));// 另起⼀table// sheet.mergeCells(0, 1, 8, 1);// sheet.addCell(new Label(0, 1, "详细数据", wcf_tabletitle)); // table标题sheet.addCell(new Label(0, 1, "序号", wcf_table));sheet.addCell(new Label(1, 1, "姓名", wcf_table));sheet.addCell(new Label(2, 1, "性别", wcf_table));sheet.addCell(new Label(3, 1, "留⾔时间", wcf_table));sheet.addCell(new Label(4, 1, "QQ号码", wcf_table));sheet.addCell(new Label(5, 1, "E-mail", wcf_table));sheet.addCell(new Label(6, 1, "留⾔信息", wcf_table));// table内容// 这⾥⽤你的dao// HibernateDAO dao = new HibernateDAO();// List list = dao.show_message();// System.out.println("数据⾏数:" + list.size());// for (int i = 0; i < list.size(); i++) {// // 对应你的vo类// TbMessage data = (TbMessage) list.get(i);//// sheet.addCell(new Label(0, 2 + i, String.valueOf(i + 1),// wcf_center));// sheet.addCell(new Label(1, 2 + i, data.getNickname(),// wcf_center));// sheet// .addCell(new Label(2, 2 + i, data.getGender(),// wcf_center));// sheet.addCell(new Label(3, 2 + i, String.valueOf(data// .getDatetime()), wcf_center));// sheet.addCell(new Label(4, 2 + i, data.getQq(), wcf_center));// sheet.addCell(new Label(5, 2 + i, data.getEmail(), wcf_center));// sheet// .addCell(new Label(6, 2 + i, data.getMessage(),// wcf_center));// }workbook.write();workbook.close();System.out.println("导出成功");// 存放url地址} catch (Exception e) {System.out.println("在输出到EXCEL的过程中出现错误,错误原因:" + e.toString()); }}public void testExcel2() {try {WritableWorkbook workbook = Workbook.createWorkbook(new File("d:/预定信息.xls"));WritableSheet sheet = workbook.createSheet("留⾔信息", 0);sheet.setColumnView(0, 5); // 第1列sheet.setColumnView(1, 12); // 第2列sheet.setColumnView(2, 10);sheet.setColumnView(3, 20);sheet.setColumnView(4, 10);sheet.setColumnView(5, 18);sheet.setColumnView(6, 18);sheet.setColumnView(7, 18);sheet.setColumnView(8, 22);sheet.setColumnView(9, 10);// 设置⾏⾼sheet.setRowView(0, 1600, false);sheet.setRowView(1, 400, false);sheet.setRowView(7, 400, false);// 设置页边距sheet.getSettings().setRightMargin(0.5);// 设置页脚sheet.setFooter("", "", "测试页脚");// 字体WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 14,WritableFont.BOLD);WritableFont tableFont = new WritableFont(WritableFont.ARIAL, 12,WritableFont.NO_BOLD);WritableFont baodanFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);// ⽤于标题WritableCellFormat wcf_title = new WritableCellFormat(BoldFont);wcf_title.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条wcf_title.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_title.setAlignment(Alignment.CENTRE); // ⽔平对齐wcf_title.setWrap(true); // 是否换⾏// ⽤于表格标题WritableCellFormat wcf_tabletitle = new WritableCellFormat(tableFont);wcf_tabletitle.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条wcf_tabletitle.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐 wcf_tabletitle.setAlignment(Alignment.CENTRE); // ⽔平对齐wcf_tabletitle.setWrap(true); // 是否换⾏// ⽤于正⽂左WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);wcf_left.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_left.setAlignment(Alignment.LEFT);wcf_left.setWrap(true); // 是否换⾏// ⽤于正⽂左WritableCellFormat wcf_center = new WritableCellFormat(NormalFont);wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐 wcf_center.setAlignment(Alignment.CENTRE);wcf_center.setWrap(true); // 是否换⾏// ⽤于正⽂右WritableCellFormat wcf_right = new WritableCellFormat(NormalFont);wcf_right.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_right.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_right.setAlignment(Alignment.RIGHT);wcf_right.setWrap(false); // 是否换⾏// ⽤于跨⾏WritableCellFormat wcf_merge = new WritableCellFormat(NormalFont);wcf_merge.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_merge.setVerticalAlignment(VerticalAlignment.TOP); // 垂直对齐wcf_merge.setAlignment(Alignment.LEFT);wcf_merge.setWrap(true); // 是否换⾏WritableCellFormat wcf_table = new WritableCellFormat(NormalFont);wcf_table.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_table.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_table.setAlignment(Alignment.CENTRE);wcf_table.setBackground(Colour.GRAY_25);wcf_table.setWrap(true); // 是否换⾏// 合并单元格,注意mergeCells(col0,row0,col1,row1)// --列从0开始,col1为你要合并到第⼏列,⾏也⼀样sheet.mergeCells(0, 0, 9, 0);sheet.addCell(new Label(0, 0, "怀化君源华天⼤酒店预定信息", wcf_title)); // sheet.mergeCells(0, 1, 1, 1);// sheet.mergeCells(2, 1, 5, 1);//// sheet.addCell(new Label(0, 1, "", wcf_center));// sheet.addCell(new Label(2, 1, "姓名:" + "supercrsky",// wcf_center));//// sheet.mergeCells(0, 2, 1, 2);// sheet.mergeCells(2, 2, 3, 2);//// sheet.addCell(new Label(0, 2, "单位:", wcf_center));// sheet.addCell(new Label(2, 2, "ChinaLong", wcf_center)); // sheet.addCell(new Label(4, 2, "薪⽔", wcf_center));// sheet.addCell(new Label(5, 2, "5000", wcf_center));//// sheet.mergeCells(0, 3, 1, 3);// sheet.mergeCells(2, 3, 3, 3);//// sheet.addCell(new Label(0, 3, "性别:", wcf_center));// sheet.addCell(new Label(2, 3, "男", wcf_center));// sheet.addCell(new Label(4, 3, "婚否:", wcf_center));// sheet.addCell(new Label(5, 3, "否", wcf_center));//// sheet.mergeCells(0, 4, 1, 4);// sheet.mergeCells(2, 4, 3, 4);//// sheet.addCell(new Label(0, 4, "是否在职:", wcf_center)); // sheet.addCell(new Label(2, 4,"是",// wcf_center));// sheet.addCell(new Label(4, 4,"⼯作经验:", wcf_center)); // sheet.addCell(new Label(5, 4, "4",wcf_center));//// sheet.mergeCells(0, 5, 1, 5);// sheet.mergeCells(2, 5, 3, 5);//// sheet.addCell(new Label(0, 5, "保险费:", wcf_center));// sheet.addCell(new Label(2, 5,"50",// wcf_center));// sheet.addCell(new Label(4, 5, "保险⾦额:", wcf_center)); // sheet.addCell(new Label(5, 5, "50000",// wcf_center));//// sheet.mergeCells(0, 6, 1, 6);// sheet.mergeCells(2, 6, 3, 6);//// sheet.addCell(new Label(0, 6, "⼯作地点:", wcf_center)); // sheet.addCell(new Label(2, 6, "北京", wcf_center));// sheet.addCell(new Label(4, 6, "开⼼度:", wcf_center)); // sheet.addCell(new Label(5, 6, "⼀般", wcf_center));// 另起⼀table// sheet.mergeCells(0, 1, 8, 1);// sheet.addCell(new Label(0, 1, "详细数据", wcf_tabletitle)); // table标题sheet.addCell(new Label(0, 1, "序号", wcf_table));sheet.addCell(new Label(1, 1, "顾客姓名", wcf_table));sheet.addCell(new Label(2, 1, "性别", wcf_table));sheet.addCell(new Label(3, 1, "房间类型", wcf_table));sheet.addCell(new Label(4, 1, "房间号", wcf_table));sheet.addCell(new Label(5, 1, "⼊住时间", wcf_table));sheet.addCell(new Label(6, 1, "离店时间", wcf_table));sheet.addCell(new Label(7, 1, "顾客电话", wcf_table));sheet.addCell(new Label(8, 1, "顾客邮箱", wcf_table));sheet.addCell(new Label(9, 1, "⼊住情况", wcf_table));// // table内容// // 这⾥⽤你的dao// ManagerBookInfoDAO dao=new ManagerBookInfoDAO();// List list = dao.showBookInfo();// System.out.println("数据⾏数:" + list.size());// for (int i = 0; i < list.size(); i++) {// // 对应你的vo类// BookRoomInfo data = (BookRoomInfo) list.get(i);//// sheet.addCell(new Label(0, 2 + i, String.valueOf(i + 1),// wcf_center));// sheet.addCell(new Label(1, 2 + i, data.getName(),// wcf_center));// sheet// .addCell(new Label(2, 2 + i, data.getGender(),// wcf_center));// sheet// .addCell(new Label(3, 2 + i, data.getRoomType(),// wcf_center));// sheet// .addCell(new Label(4, 2 + i, data.getRoomId(),// wcf_center));// sheet.addCell(new Label(5, 2 + i, String.valueOf(data.getBegDate()).substring(0, 11)// , wcf_center));// sheet.addCell(new Label(6, 2 + i, String.valueOf(data.getEndDate()).substring(0, 11), wcf_center)); // sheet.addCell(new Label(7, 2 + i, data.getTelephone(), wcf_center));// sheet// .addCell(new Label(8, 2 + i, data.getEmail(),// wcf_center));//// sheet// .addCell(new Label(9, 2 + i, data.getState(),// wcf_center));// }workbook.write();workbook.close();System.out.println("导出成功");// 存放url地址} catch (Exception e) {System.out.println("在输出到EXCEL的过程中出现错误,错误原因:" + e.toString());}}public void testExcel3() throws Exception {try {WritableWorkbook workbook = Workbook.createWorkbook(new File("d:/资产信息.xls"));WritableSheet sheet = workbook.createSheet("资产信息", 0);sheet.setColumnView(0, 5); // 第1列sheet.setColumnView(1, 12); // 第2列sheet.setColumnView(2, 10);sheet.setColumnView(3, 22);sheet.setColumnView(4, 15);sheet.setColumnView(5, 22);sheet.setColumnView(6, 18);sheet.setColumnView(7, 30);sheet.setColumnView(8, 15);sheet.setColumnView(9, 15);sheet.setColumnView(10, 20);// 设置⾏⾼sheet.setRowView(0, 1600, false);sheet.setRowView(1, 400, false);sheet.setRowView(7, 400, false);// 设置页边距sheet.getSettings().setRightMargin(0.5);// 设置页脚sheet.setFooter("", "", "测试页脚");// 字体WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 14,WritableFont.BOLD);WritableFont tableFont = new WritableFont(WritableFont.ARIAL, 12,WritableFont.NO_BOLD);WritableFont baodanFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);// ⽤于标题WritableCellFormat wcf_title = new WritableCellFormat(BoldFont);wcf_title.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条wcf_title.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_title.setAlignment(Alignment.CENTRE); // ⽔平对齐wcf_title.setWrap(true); // 是否换⾏// ⽤于表格标题WritableCellFormat wcf_tabletitle = new WritableCellFormat(tableFont);wcf_tabletitle.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条wcf_tabletitle.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐 wcf_tabletitle.setAlignment(Alignment.CENTRE); // ⽔平对齐wcf_tabletitle.setWrap(true); // 是否换⾏// ⽤于正⽂左WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);wcf_left.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐wcf_left.setAlignment(Alignment.LEFT);wcf_left.setWrap(true); // 是否换⾏// ⽤于正⽂左WritableCellFormat wcf_center = new WritableCellFormat(NormalFont);wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐 wcf_center.setAlignment(Alignment.CENTRE);wcf_center.setWrap(true); // 是否换⾏// ⽤于正⽂右WritableCellFormat wcf_right = new WritableCellFormat(NormalFont);wcf_right.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_right.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐 wcf_right.setAlignment(Alignment.RIGHT);wcf_right.setWrap(false); // 是否换⾏// ⽤于跨⾏WritableCellFormat wcf_merge = new WritableCellFormat(NormalFont); wcf_merge.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_merge.setVerticalAlignment(VerticalAlignment.TOP); // 垂直对齐wcf_merge.setAlignment(Alignment.LEFT);wcf_merge.setWrap(true); // 是否换⾏WritableCellFormat wcf_table = new WritableCellFormat(NormalFont); wcf_table.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_table.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐 wcf_table.setAlignment(Alignment.CENTRE);wcf_table.setBackground(Colour.GRAY_25);wcf_table.setWrap(true); // 是否换⾏// 合并单元格,注意mergeCells(col0,row0,col1,row1)// --列从0开始,col1为你要合并到第⼏列,⾏也⼀样sheet.mergeCells(0, 0, 10, 0);//总标题sheet.addCell(new Label(0, 0, "it资产详细信息", wcf_title));// table标题sheet.addCell(new Label(0, 1, "序号", wcf_table));sheet.addCell(new Label(1, 1, "受理⼈", wcf_table));sheet.addCell(new Label(2, 1, "采购单号", wcf_table));sheet.addCell(new Label(3, 1, "机器类型", wcf_table));sheet.addCell(new Label(4, 1, "服务编号", wcf_table));sheet.addCell(new Label(5, 1, "资产编号", wcf_table));sheet.addCell(new Label(6, 1, "机器型号", wcf_table));sheet.addCell(new Label(7, 1, "机器mac", wcf_table));sheet.addCell(new Label(8, 1, "状态", wcf_table));sheet.addCell(new Label(9, 1, "领⽤⼈", wcf_table));sheet.addCell(new Label(10, 1, "领⽤时间", wcf_table));// table内容// 这⾥⽤你的dao// HibernateDAO dao = new HibernateDAO();// List list = dao.show_message();// System.out.println("数据⾏数:" + list.size());// for (int i = 0; i < list.size(); i++) {// // 对应你的vo类// TbMessage data = (TbMessage) list.get(i);//// sheet.addCell(new Label(0, 2 + i, String.valueOf(i + 1),// wcf_center));// sheet.addCell(new Label(1, 2 + i, data.getNickname(),// wcf_center));// sheet// .addCell(new Label(2, 2 + i, data.getGender(),// wcf_center));// sheet.addCell(new Label(3, 2 + i, String.valueOf(data// .getDatetime()), wcf_center));// sheet.addCell(new Label(4, 2 + i, data.getQq(), wcf_center));// sheet.addCell(new Label(5, 2 + i, data.getEmail(), wcf_center));// sheet// .addCell(new Label(6, 2 + i, data.getMessage(),// wcf_center));// }workbook.write();workbook.close();System.out.println("导出成功");// 存放url地址} catch (Exception e) {System.out.println("在输出到EXCEL的过程中出现错误,错误原因:" + e.toString()); }}}。

用JXL操作Excel

用JXL操作Excel

五、单元格操作
1 合并单元格 WritableSheet.mergeCells( int col1, int ro w1, int col2, int row2); 作用:合并(col1,row1)到(col2,row2) 作用:合并(col1,row1)到(col2,row2) 比如: sheet.mergeCells( 0 , 0 , 4 , 0 );
用JXL操作Ex一、JXL概述 二、读操作 三、写操作 四、单元格内容的格式 五、单元格操作 六、其他一些功能
一、JXL概述 JXL概述
1 什么是JXL 什么是JXL jxl 是一个韩国人写的java操作excel的工 是一个韩国人写的java操作excel的工 具, 在开源世界中,有两套比较有影响的API可 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI。其中功 供使用,一个是POI,一个是jExcelAPI。其中功 能相对POI弱一点。但jExcelAPI对中文支持非常 能相对POI弱一点。但jExcelAPI对中文支持非常 好,API是纯Java的, 并不依赖Windows系统, 好,API是纯Java的, 并不依赖Windows系统, 即使运行在Linux下,它同样能够正确的处理 即使运行在Linux下,它同样能够正确的处理 Excel文件。 另外需要说明的是,这套API对图 Excel文件。 另外需要说明的是,这套API对图 形和图表的支持很有限,而且仅仅识别PNG格 形和图表的支持很有限,而且仅仅识别PNG格 式。
一、 JXL概述 JXL概述
2 JXL的特点 JXL的特点 Reads data from Excel 95, 97, 2000 workbooks Reads and writes formulas (Excel 97 and later only) Generates spreadsheets in Excel 2000 format Supports font, number and date formatting Supports shading and colouring of cells Modifies existing worksheets Supports image creation Preserves macros on copy Customizable logging

jxl开发教程

jxl开发教程

前阵子接到一个项目,其中有个功能就需要把数据填充到绘制好的EXCEL表单里面,在网上搜集了一些东西之后就开始做了,呵呵。

*********************************************先看看转载的这部分*************************************************************Java操作Excel之理解JXL--读取Excel 说到如何用JXL读取Excel文件,现在来看看如何读取Excel模板然后把动态数据写入到模板以生成特定格式的Excel。

同样的思路,先来考虑下会涉及到那些对象,和上篇文章读取相比这里涉及到一个写入的步骤,所以JXL必然会提供一个对象来支持写入,这就是WritableWorkbook。

那么如何得到到这个类的实例,查看APIDoc发现Workbook类提供了几个静态的createWorkbook方法返回WritableWorkbook实例,可以看到众多createWorkbook方法主要分为两类:一个参数和两个参数。

简单分析可以得知前者仅仅是用来直接生成Excel文件,后者先读取模板再向模板写入数据然后生成Excel。

(还有一个三参数方法加上一个用来设置workbook的参数)现在按照上篇文章中所讲述的流程来看看读取模板并写入需要那些步骤。

第一步:选择模板文件:Workbook wb = Workbook.getWorkbook(new File(realpath));第二步:通过模板得到一个可写的Workbook:WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);第一个参数是一个输出流对象,比如可以ByteArrayOutputStream targetFile = new ByteArrayOutputStream();这样定义这个输出流对象。

jxls2.3-简明教程

jxls2.3-简明教程

jxls2.3-简明教程jxls是⼀个简单的、轻量级的excel导出库,使⽤特定的标记在excel模板⽂件中来定义输出格式和布局。

java中成熟的excel导出⼯具有pol、jxl,但他们都是使⽤java代码的⽅式来导出excel,编码效率很低且不⽅便维护。

另外,jxls2.3的运⾏效率也相当不错,经过测试,在禁⽤⽇志输出的情况下,导出excel单表66535条记录仅仅3000毫秒,与poi⼏乎没什么⼤的差距。

excel模板⽰例:Excel模板标记在jxls中的作⽤分为三部分:1. bean属性标记2. XLS Area定义标记3. XLS Command表⽰标记bean属性标记jxls使⽤ Apache JEXL表达式语⾔来解析定义在excel模板中的表达式。

JEXL与JSTL相似,并对JSTL进⾏了扩展。

eg:${department.chief.age} //属性可以是⽆限深度${utils:dateFmt(date,"yyyy-MM-dd")} //⾃定义⼯具函数XLS Area定义标记XLS Area 是JxlsPlus中的⼀个重要概念,它代表excel模板中需要被解析的矩形区域,由A1到最后⼀个单元格表⽰,有利于加快解析速度。

XLS Area 使⽤excel注释标注表⽰,它需要被定义在excel 模板的第⼀个单元格(A1):jx:area(lastCell = "<AREA_LAST_CELL>")这个标记定义了excel模板需要被解析的矩形区域为:A1到<AREA_LAST_CELL>。

XLS Command表⽰标记XLS Command 使⽤excel注释标注表⽰,命令格式如下:jx:<command_name>(attr1='val1' attr2='val2' ... attrN='valN' lastCell=<last_cell> areas=["<command_area1>", "<command_area2",... "<command_areaN>"])<command_name> 是库⾃带的命名或是⽤户⾃定义并注册到XlsCommentAreaBuilder的命令。

jxl 设置样式

jxl 设置样式

jxl 设置样式2009-10-23 20:201.//filePathNew为一个File对象的实例2.WritableWorkbook wwb = Workbook.createWorkbook(filePathNew);3.4.//strSheetname为Excel中Sheet表的名称5.WritableSheet ws = wwb.createSheet(strSheetname, 0);6.7.//创建格式化对象实例8.WritableCellFormat totalx2Format = new WritableCellFormat();9.10.//垂直居中11.totalx2Format.setVerticalAlignment(VerticalAlignment.CENTRE);12.13.//水平居中14.totalx2Format.setAlignment(Alignment.CENTRE);15.16.//第一列的宽度17.ws.setColumnView(0, 15);18.19.//第二列的宽度20.ws.setColumnView(1, 40);21.22.//合并单元格:第一行第一列,第一行第二列,第二行第一列,第二行第二列23.//(0, 0, 1, 1)称为坐标更合适,实际上是将(0,0)单元格扩大了24.ws.mergeCells(0, 0, 1, 1);25.26.//设置Sheet表的标题,使用刚才合并的单元格,并将格式绑定bel sheetTitle = new Label(0, 0, "统计表", totalx2Format);28.ws.addCell(sheetTitle);29.30.//设置列标题bel colums1 = new Label(0, 2, "编号");32.ws.addCell(colums1);bel colums2 = new Label(1, 2, "名称");34.ws.addCell(colums2);35.36.//开始添加数据37.for(int k = 3; k <= 13; k++)38.{bel content1 = new Label(0, k, 编号:k);bel content2 = new Label(1, k, 名称:k);41.ws.addCell(content1);42.ws.addCell(content2);43.}44.wwb.write();45.46.//别忘了关闭哦47.wwb.close();。

java报表jxl和poi打印设...

java报表jxl和poi打印设...

java报表jxl和poi打印设置(Java report JXL and poi printingsettings)Java report JXL and POI printing settings reprintedIn recent projects, almost all statements, and in the web report using fomula 1 controls can not use Excel originally set good print attributes, so the commonly used report printing attributes are summarizedThe printing of JXL is set in the class jxl.SheetSettings, and we can get it by the method Sheet (or WritableSheet)#getSettings ().1. page1.1 directionsSheetSetting#setOrientation (PageOrientation Po);Parameter: PageOrientation#LANDSCAPE horizontal printingPageOrientation# PORTRAIT vertical printing1.2 zoom1.2.1 scaling ratio (A) SheetSetting #setScaleFactor (int); percentage form1.2.2 adjustment (F)Page SheetSetting #setFitWidth (int);Page height SheetSetting #setFitHeight (int);1.3 paper size (Z) SheetSetting #setPaperSize (PaperSize);The definition of the size of the paper refers to the constants in the PaperSize class.1.4 start page number (R) SheetSetting #setPageStrart (int); [default state]2 page spacing2.1 (T) SheetSetting setTopMargin (double) #;2.2 (B) SheetSetting setBottomMargin (double) #;2.3 left (L) SheetSetting setLeftMargin (double) #;2.4 right (R) SheetSetting setRightMargin (double) #;2.5 header (A) SheetSetting #setHeaderMargin (double);2.6 footer (F) SheetSetting #setFooterMargin (double);2.7 centered modeThe level of 2.7.1 (Z) SheetSetting setHorizontalCentre (Boolean) #;2.7.2 vertical (V) SheetSetting #setVerticallyCenter (Boolean);3 header / footer3.1 SheetSetting setHeader (HeaderFooter) # header;Explain:For the setting of HeaderFooter, first determine the location of the header (left, right), the HeaderFooter#getCentre (or getLeft) (getRight) (), () method to obtain the HeaderFooter.Contents class, after the operation of the properties of this class.Here are a brief introduction of several commonly used methods:Set size: Contents#setFontSize (int)Set font: Contents#setFontName (String)Set content: Contents# append (String), and appendDate () the current date, etc., specific reference Contents class description3.2 SheetSetting setFooter (HeaderFooter) # footer;The same as above4 worksheet4.1 printing areaSheetSettings #setPrintArea (firstCol, firstRow, lastCol, lastRow)4.2 print titleSheetSettings#setPrintTitles (firstRow, lastRow, firstCol, lastCol);SheetSettings#setPrintTitlesCol (firstCol, lastCol)SheetSettings#setPrintTitlesRow (firstRow, lastRow)There are other settings that can be found in JXL API, not much.Attachment: usually set the print in Excel, and then read it to the current page to enclose the code:The acquisition of the original Java code / / Sheet page SheetSettings (sheetSetting=sheet.getSettings); / / set the original sheet page print settings to the current Sheet page MjJxlExcelCopyPrintSetting(sheet=new).CopySheetSettingToSheet (sheet, sheetSetting);The following is the MjJxlExcelCopyPrintSetting Code: import jxl.HeaderFooter; import jxl.Range; import jxl.SheetSettings; import jxl.format.PageOrientation; importjxl.format.PaperSize; import jxl.write.WritableSheet; / * * * * @author read Jxl method and set for Qiu * @version 1 * public class MjJxlExcelCopyPrintSetting {/ * * * the method of settingsetting to sheet * @param sheet sheet * * to set attributes @param setting is set to @return / public WritableSheet copySheetSettingToSheet (WritableSheet sheet, SheetSettings setting) {/ / set the original Sheet print properties to the new Sheet page SheetSettings sheetSettings=(sheet.getSettings);SheetSettings.setAutomaticFormulaCalculation((setting.getAutomaticFormulaCalculation));sheetSettings.setBottomMargin ((setting.getBottomMargin)); sheetSettings.setCopies ((setting.getCopies)); sheetSettings.setDefaultColumnWidth((setting.getDefaultColumnWidth));sheetSettings.setDefaultRowHeight((setting.getDefaultRowHeight));sheetSettings.setDisplayZeroValues((setting.getDisplayZeroValues));sheetSettings.setFitHeight ((setting.getFitHeight)); sheetSettings.setFitToPages ((setting.getFitToPages)); sheetSettings.setFitWidth (setting.getFitWidth) (HeaderFooter); (footer=setting.getFooter); if (footer! =null) { SheetSettings.setFooter (footer);}sheetSettings.setFooterMargin (setting.getFooterMargin) (HeaderFooter); (header=setting.getHeader); if (header! =null) {sheetSettings.setHeader} (header);sheetSettings.setHeaderMargin ((setting.getHeaderMargin)); sheetSettings.setHidden ((setting.isHidden)); sheetSettings.setHorizontalCentre((setting.isHorizontalCentre));sheetSettings.setHorizontalFreeze((setting.getHorizontalFreeze));sheetSettings.setHorizontalPrintResolution((setting.getHorizontalPrintResolution));sheetSettings.setLeftMargin (setting.getLeftMargin) (sheetSettings.setNormalMagn); Ification(setting.getNormalMagnification) (PageOrientation); (pageOrientation=setting.getOrientation); if (pageOrientation! =null) {sheetSettings.setOrientation} (sheetSettings.setPageBreakPreviewMagnification (pageOrientation); setting.getpagebreakpreviewmagnification());sheetsettings。

jxl(JavaExcelAPI)使用方法【2】

jxl(JavaExcelAPI)使用方法【2】

jxl(JavaExcelAPI)使⽤⽅法【2】JAVA EXCEL API简介Java Excel是⼀开放源码项⽬,通过它Java开发⼈员可以读取Excel⽂件的内容、创建新的Excel⽂件、更新已经存在的Excel⽂件。

使⽤该API⾮Windows操作系统也可以通过纯Java应⽤来处理Excel数据表。

因为是使⽤Java编写的,所以我们在Web应⽤中可以通过JSP、Servlet来调⽤API实现对Excel数据表的访问。

现在发布的稳定版本是V2.0,提供以下功能:* 从Excel 95、97、2000等格式的⽂件中读取数据;* 读取Excel公式(可以读取Excel 97以后的公式);* ⽣成Excel数据表(格式为Excel 97);* ⽀持字体、数字、⽇期的格式化;* ⽀持单元格的阴影操作,以及颜⾊操作;* 修改已经存在的数据表;现在还不⽀持以下功能,但不久就会提供了:1. 不能够读取图表信息;2. 可以读,但是不能⽣成公式,任何类型公式最后的计算值都可以读出;回页⾸应⽤⽰例1 从Excel⽂件读取数据表Java Excel API既可以从本地⽂件系统的⼀个⽂件(.xls),也可以从输⼊流中读取Excel数据表。

读取Excel数据表的第⼀步是创建Workbook(术语:⼯作薄),下⾯的代码⽚段举例说明了应该如何操作:(完整代码见ExcelReading.java)import java.io.*;import jxl.*;… … … …try{//构建Workbook对象, 只读Workbook对象//直接从本地⽂件创建Workbook//从输⼊流创建WorkbookInputStream is = new FileInputStream(sourcefile);jxl.Workbook rwb = Workbook.getWorkbook(is);}catch (Exception e){e.printStackTrace();}⼀旦创建了Workbook,我们就可以通过它来访问Excel Sheet(术语:⼯作表)。

JXL入门介绍

JXL入门介绍

JXL⼊门介绍Java代码1. # package com.xinli;2. # import java.io.FileOutputStream;3. # import java.io.OutputStream;4. # import java.text.SimpleDateFormat;5. # import java.util.ArrayList;6. # import java.util.Date;7. # import java.util.List;8. #9. # import jxl.*;10. # import jxl.format.Alignment;11. # import jxl.format.Border;12. # import jxl.format.BorderLineStyle;13. # import jxl.format.CellFormat;14. # import jxl.write.Boolean;15. # import bel;16. # import jxl.write.Number;17. # import jxl.write.WritableCellFormat;18. # import jxl.write.WritableFont;19. # import jxl.write.WritableSheet;20. # import jxl.write.WritableWorkbook;21. #22. # public class JXLExample {23. #24. # /**25. # *26. # * @author smart *27. # */28. # public static void main(String[] args) {29. # // 准备设置excel⼯作表的标题30. # String[] title = {"编号","产品名称","产品价格","产品数量","⽣产⽇期","产地","是否出⼝"};31. # try {32. # // 获得开始时间33. # long start = System.currentTimeMillis();34. # // 输出的excel的路径35. # String filePath = "c:\\test.xls";36. # // 创建Excel⼯作薄37. # WritableWorkbook wwb;38. # // 新建⽴⼀个jxl⽂件,即在C盘下⽣成test.xls39. # OutputStream os = new FileOutputStream(filePath);40. # wwb=Workbook.createWorkbook(os);41. # // 添加第⼀个⼯作表并设置第⼀个Sheet的名字42. # WritableSheet sheet = wwb.createSheet("产品清单", 0);43. # Label label;44. # for(int i=0;i<title.length;i++){45. # // Label(x,y,z)其中x代表单元格的第x+1列,第y+1⾏, 单元格的内容是y46. # // 在Label对象的⼦对象中指明单元格的位置和内容47. # label = new Label(i,0,title[i]);48. # // 将定义好的单元格添加到⼯作表中49. # sheet.addCell(label);50. # }51. # // 下⾯是填充数据52. # /*53. # * 保存数字到单元格,需要使⽤jxl.write.Number54. # * 必须使⽤其完整路径,否则会出现错误55. # * */56. # // 填充产品编号57. # jxl.write.Number number = new jxl.write.Number(0,1,20071001);58. # sheet.addCell(number);59. # // 填充产品名称60. # label = new Label(1,1,"⾦鸽⽠⼦");61. # sheet.addCell(label);62. # /*63. # * 定义对于显⽰⾦额的公共格式64. # * jxl会⾃动实现四舍五⼊65. # * 例如 2.456会被格式化为2.46,2.454会被格式化为2.4566. # * */67. # jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");68. # jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf);69. # // 填充产品价格70. # jxl.write.Number nb = new jxl.write.Number(2,1,2.45,wcf);71. # sheet.addCell(nb);72. # // 填充产品数量73. # jxl.write.Number numb = new jxl.write.Number(3,1,200);74. # sheet.addCell(numb);75. # /*76. # * 定义显⽰⽇期的公共格式77. # * 如:yyyy-MM-dd hh:mm78. # * */79. # SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");80. # String newdate = sdf.format(new Date());81. # // 填充出产⽇期82. # label = new Label(4,1,newdate);83. # sheet.addCell(label);84. # // 填充产地85. # label = new Label(5,1,"陕西西安");86. # sheet.addCell(label);87. # /*88. # * 显⽰布尔值89. # * */90. # jxl.write.Boolean bool = new jxl.write.Boolean(6,1,true);91. # sheet.addCell(bool);92. # /*93. # * 合并单元格94. # * 通过writablesheet.mergeCells(int x,int y,int m,int n);来实现的95. # * 表⽰将从第x+1列,y+1⾏到m+1列,n+1⾏合并96. # *97. # * */98. # sheet.mergeCells(0,3,2,3);99. # label = new Label(0,3,"合并了三个单元格");100. # sheet.addCell(label);101. # /*102. # *103. # * 定义公共字体格式104. # * 通过获取⼀个字体的样式来作为模板105. # * ⾸先通过web.getSheet(0)获得第⼀个sheet106. # * 然后取得第⼀个sheet的第⼆列,第⼀⾏也就是"产品名称"的字体107. # * */108. # CellFormat cf = wwb.getSheet(0).getCell(1, 0).getCellFormat();109. # WritableCellFormat wc = new WritableCellFormat();110. # // 设置居中111. # wc.setAlignment(Alignment.CENTRE);112. # // 设置边框线113. # wc.setBorder(Border.ALL, BorderLineStyle.THIN);114. # // 设置单元格的背景颜⾊115. # wc.setBackground(jxl.format.Colour.RED);116. # label = new Label(1,5,"字体",wc);117. # sheet.addCell(label);118. #119. # // 设置字体120. # jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont("⾪书"),20);121. # WritableCellFormat font = new WritableCellFormat(wfont);122. # label = new Label(2,6,"⾪书",font);123. # sheet.addCell(label);124. #125. # // 写⼊数据126. # wwb.write();127. # // 关闭⽂件128. # wwb.close();129. # long end = System.currentTimeMillis();130. # System.out.println("----完成该操作共⽤的时间是:"+(end-start)/1000);131. # } catch (Exception e) {132. # System.out.println("---出现异常---");133. # e.printStackTrace();134. # }135. # }136. #137. # }。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

创建
//输出流
OutputStream os = new FileOutputStream(“D:\\test.xls”);
//创建workbook
WritableWorkbook workbook= Workbook.createWorkbook(os);
//创建一个sheet 参数(sheetName ,sheetNumber)下标0开始代表第一页WritableSheet sheet = workbook.createSheet(“第一个sheet”, 0);
宽度、高度、和并单元格
//设置列的默认列宽(所有单元格)
sheet.getSettings().setDefaultColumnWidth(9);
//设置列的默认行高(所有单元格)
sheet.getSettings().setDefaultRowHeight(500);
//宽度设定第一列宽16 下标0开始代表第一列
sheet.setColumnView(0, 16);
//高度设定第一行高度700
sheet.setRowView(0, 700);
//单元格合并开始列号,开始行号,结束列号,结束行号
sheet.mergeCells(0, 0, 31, 0);
文字格式: 字体、大小、背景色、对齐、边框线、自动换行
想使用自己定义的颜色请关注本人百度空间实现方法。

//生成字体字体MSPゴシック18号非粗体非斜体(字体在Excle中复制)
WritableFont font = new WritableFont(WritableFont.createFont("MSPゴシック"), 18, WritableFont.NO_BOLD, false);
//生成格式
WritableCellFormat format= new WritableCellFormat();
//向格式中加入字体
format.setFont(font);
//背景色
format .setBackground(Colour.BLUE)
//水平对齐
format.setAlignment(Alignment.CENTRE);
//垂直对齐
format.setVerticalAlignment(VerticalAlignment.CENTRE);
//边框线所有边框细线
format.setBorder(Border.ALL, BorderLineStyle.THIN);
//自动换行这里为true 时在文本中打\n会自动换行,不然要手动点一下才会换行format.setWrap(true);
数字格式:百分比、分隔符等
//百分比用右键EXCEL单元格---格式设置----表示形式---用户定义把格式复制到这里
WritableCellFormat formate = new WritableCellFormat(numberFormat);
……此处省略字体对齐等
//千位加逗号用
NumberFormat nf = new NumberFormat("#,##0");
WritableCellFormat formate = new WritableCellFormat(nf);
……此处省略字体对齐等
//数字强制文本
//下面代码插入以零开头的纯数字文本“000222”
//sheet.addCell(new Label(33, rowNo,"000222", fromart));
//虽然前面三个零会显示,但当我们双击单元格以后,前面的零会消失!!
//解决办法:
WritableCellFormat kodoFromart = new WritableCellFormat(NumberFormats.TEXT); …….此处省略字体对齐等
sheet.addCell(new Label(33, rowNo,"000222", kodoFromart));
写入:文本、数字、工式
//文本写入第一列第二行插入文本“文本写入Test “,使用格式formate
sheet.addCell(new Label(0, 1 ,”文本写入Test”, formate));
//数字
sheet.addCell(new jxl.write.Number(1, 1,99999 ,format));
sheet.addCell(new jxl.write.Number(2, 1,99999 ,format));
//插入工式
sheet.addCell(new Formula(3, 1, “sum(B1:C1)”, format));。

相关文档
最新文档