package com.soft.export; import java.io.File; import jxl.CellType; import jxl.Workbook; import jxl.biff.DisplayFormat; import jxl.format.Alignment; import jxl.format.Border; import jxl.format.BorderLineStyle; import jxl.format.Colour; import jxl.format.VerticalAlignment; import jxl.write.Formula; import jxl.write.Number; import jxl.write.NumberFormat; import jxl.write.NumberFormats; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableHyperlink; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; import org.junit.Test; public class GSTest { @Test public void testGS(){ WritableWorkbook workbook = null; try{ workbook = Workbook.createWorkbook(new File("C:/Desktop/link.xls")); WritableSheet sheet1 = workbook.createSheet("sheet1", 0); WritableSheet sheet2 = workbook.createSheet("sheet2", 1); jxl.write.Number labelNF1 = new jxl.write.Number(0, 2,0.5); jxl.write.Number labelNF2 = new jxl.write.Number(0, 3,45678); sheet1.addCell(labelNF1); sheet1.addCell(labelNF2); //将建公式 Formula f = new Formula(5, 5, "SUM(A3:A4)", getDataCellFormat(CellType.NUMBER_FORMULA)); sheet1.addCell(f); WritableFont wf = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false); //数字显示格式为浮点数百分比 DisplayFormat displayFormat = NumberFormats.PERCENT_FLOAT; WritableCellFormat wcfF = new WritableCellFormat(wf,displayFormat); wcfF.setAlignment(Alignment.CENTRE); wcfF.setVerticalAlignment(VerticalAlignment.CENTRE); wcfF.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN); Number number = new jxl.write.Number(5, 0, Double.parseDouble("1"), wcfF); sheet1.addCell(number); //添加超链接 addHyperlink(5,5,sheet1,sheet2,"link test"); workbook.write(); workbook.close(); } catch(Exception e){ e.printStackTrace(); } } /** * * @param col 链接所在列 * @param row 链接所在行 * @param sheet要将链接添加到哪一个工作表 * @param destSheet 要连接到哪个工作表 * @param linkName 链接名称 */ public static void addHyperlink(int col,int row,WritableSheet sheet,WritableSheet destSheet,String linkName){ try { WritableHyperlink whl = new WritableHyperlink(col,row,linkName,destSheet,0,0); sheet.addHyperlink(whl); } catch (RowsExceededException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } } /** * 得到数据格式 * @return */ public WritableCellFormat getDataCellFormat(CellType type){ WritableCellFormat wcf = null; try { //字体样式 if(type == CellType.NUMBER || type == CellType.NUMBER_FORMULA){//数字 NumberFormat nf = new NumberFormat("#.00"); wcf = new WritableCellFormat(nf); }else if(type == CellType.DATE || type == CellType.DATE_FORMULA){//日期 jxl.write.DateFormat df = new jxl.write.DateFormat("yyyy-MM-dd hh:mm:ss"); wcf = new jxl.write.WritableCellFormat(df); }else{ WritableFont wf = new WritableFont(WritableFont.TIMES,10, WritableFont.NO_BOLD,false); wcf = new WritableCellFormat(wf); } //对齐方式 wcf.setAlignment(Alignment.CENTRE); wcf.setVerticalAlignment(VerticalAlignment.CENTRE); //边框 wcf.setBorder(Border.LEFT,BorderLineStyle.THIN); wcf.setBorder(Border.BOTTOM,BorderLineStyle.THIN); wcf.setBorder(Border.RIGHT,BorderLineStyle.THIN); //背景色 wcf.setBackground(Colour.WHITE); wcf.setWrap(true);//自动换行 } catch (WriteException e) { e.printStackTrace(); } return wcf; } }