HSSF 字型底線

來源:互聯網
上載者:User

設定底線找了好久。最後找了POI,英語不好啊。。。有試了好幾次才明白。。。。。中國人努力,把技術文檔都變成中文。。。。讓外國人也體驗下咱中文的博大精深。。

這是我項目中想要的結果,不過下面我給了個自己寫的能單獨運行成功的小例子,不懂的可以試試。當然,可以聯絡我。。。


相關代碼:

boolean result=false;// 第一步,建立一個webbook,對應一個Excel檔案HSSFWorkbook wb = new HSSFWorkbook();// 第二步,在webbook中添加一個sheet,對應Excel檔案中的sheetHSSFSheet sheet = wb.createSheet("sheet1");// 設定字型    HSSFFont headfont = wb.createFont();    headfont.setFontName("宋體");    headfont.setFontHeightInPoints((short) 20);// 字型大小    headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 加粗        HSSFFont font1 = wb.createFont();    font1.setFontName("宋體");    font1.setFontHeightInPoints((short) 12);// 字型大小        HSSFFont font3 = wb.createFont();    font3.setFontName("宋體");    font3.setFontHeightInPoints((short) 12);    font3.setColor(HSSFFont.COLOR_RED);    font3.setUnderline((byte)1);//表頭樣式HSSFCellStyle headstyle = wb.createCellStyle();    headstyle.setFont(headfont);    headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右置中    headstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下置中    headstyle.setLocked(true);    headstyle.setWrapText(true);// 自動換行    //內文樣式    HSSFCellStyle style = wb.createCellStyle();    style.setFont(font1);HSSFCellStyle style2 = wb.createCellStyle(); style2.setFont(font1); style2.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 建立一個置中格式 style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下邊框      style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框      style2.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框      style2.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框  // 第三步,在sheet中添加表頭第0行,注意老版本poi對Excel的行數列數有限制short//建立第0行,添加查詢條件sheet.setColumnWidth(0,1000*5);sheet.setColumnWidth(1,1000*5);sheet.setColumnWidth(2,1000*5);sheet.setColumnWidth(3,1000*5);sheet.setColumnWidth(4,1000*5);sheet.setColumnWidth(5,1000*5);sheet.setColumnWidth(6,1000*5);sheet.setColumnWidth(7,1000*5);HSSFRow row = sheet.createRow((int) 0);         // 第四步,建立單元格,並設定值表頭 設定表頭置中         List<SssbtzdBean> list1= getSssbtzdById(id);     SssbtzdBean bean=list1.get(0);         List<SssbtzdmxBean> list=sssbtzdDao.getSssbtzdmxById(bean.getId());row.setHeightInPoints((float)29.25);HSSFCell head=row.createCell((int)0);head.setCellValue(new HSSFRichTextString("傷損裝置通知單("+bean.getId()+")"));head.setCellStyle(headstyle); /**       * 合并單元格       *    第一個參數:第一個單元格的行數(從0開始)       *    第二個參數:第二個單元格的行數(從0開始)       *    第三個參數:第一個單元格的列數(從0開始)       *    第四個參數:第二個單元格的列數(從0開始)       */    sheet.addMergedRegion(new CellRangeAddress(0,0,0,7));  sheet.addMergedRegion(new CellRangeAddress(1,1,0,7));row = sheet.createRow((int) 2);row.setHeightInPoints((float)19.5);cell = row.createCell((int) 0);string="線別  "+bean.getXb()+"              通知     "+bean.getTzxlcj()+bean.getTzgq();richtext=new HSSFRichTextString(string);richtext.applyFont(0, string.length(), font1);start="線別  ".length();end=start+bean.getXb().length();richtext.applyFont(start, end, font3);start=end+"              通知     ".length();end=start+bean.getTzxlcj().length()+bean.getTzgq().length();richtext.applyFont(start, end, font3);cell.setCellValue(richtext);cell.setCellStyle(style);sheet.addMergedRegion(new CellRangeAddress(2,2,0,7));


這是我自己寫的小例子,匯入個HSSF的jar就能運行



package outExcle;import java.io.FileOutputStream;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFFont;import org.apache.poi.hssf.usermodel.HSSFRichTextString;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.RichTextString;import org.apache.poi.ss.util.CellRangeAddress;public class Outxls {/** * 匯出傷損裝置通知單 * @param id * @return */public static String  outExcleSssbtzd (){                 boolean result=false;// 第一步,建立一個webbook,對應一個Excel檔案HSSFWorkbook wb = new HSSFWorkbook();// 第二步,在webbook中添加一個sheet,對應Excel檔案中的sheetHSSFSheet sheet = wb.createSheet("sheet1");// 設定字型    HSSFFont headfont = wb.createFont();    headfont.setFontName("宋體");    headfont.setFontHeightInPoints((short) 20);// 字型大小    headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 加粗        HSSFFont font1 = wb.createFont();    font1.setFontName("宋體");    font1.setFontHeightInPoints((short) 12);// 字型大小        HSSFFont font3 = wb.createFont();    font3.setFontName("宋體");    font3.setFontHeightInPoints((short) 12);    font3.setColor(HSSFFont.COLOR_RED);    font3.setUnderline((byte)1);//表頭樣式HSSFCellStyle headstyle = wb.createCellStyle();    headstyle.setFont(headfont);    headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右置中    headstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下置中    headstyle.setLocked(true);    headstyle.setWrapText(true);// 自動換行    //內文樣式    HSSFCellStyle style = wb.createCellStyle();    style.setFont(font1);HSSFCellStyle style2 = wb.createCellStyle(); style2.setFont(font1); style2.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 建立一個置中格式 style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下邊框      style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框      style2.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框      style2.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框  // 第三步,在sheet中添加表頭第0行,注意老版本poi對Excel的行數列數有限制short//建立第0行,添加查詢條件sheet.setColumnWidth(0,1000*5);、//設定寬度sheet.setColumnWidth(1,1000*5);sheet.setColumnWidth(2,1000*5);sheet.setColumnWidth(3,1000*5);sheet.setColumnWidth(4,1000*5);sheet.setColumnWidth(5,1000*5);sheet.setColumnWidth(6,1000*5);sheet.setColumnWidth(7,1000*5);HSSFRow row = sheet.createRow((int) 0);         // 第四步,建立單元格,並設定值表頭 設定表頭置中        row.setHeightInPoints((float)29.25);HSSFCell head=row.createCell((int)0);head.setCellValue(new HSSFRichTextString("設定底線"));head.setCellStyle(headstyle); /**       * 合并單元格       *    第一個參數:第一個單元格的行數(從0開始)       *    第二個參數:第二個單元格的行數(從0開始)       *    第三個參數:第一個單元格的列數(從0開始)       *    第四個參數:第二個單元格的列數(從0開始)       */    sheet.addMergedRegion(new CellRangeAddress(0,0,0,7));  row = sheet.createRow((int) 1);row.setHeightInPoints((float)21);HSSFCell cell = row.createCell((int) 0);String string="內容1:"+"底線1"+"內容2:"+"底線2";HSSFRichTextString richtext = new HSSFRichTextString(string);richtext.applyFont(0, string.length(), font1);//設定統一格式int start="內容1:".length();int end=start+"底線1".length();richtext.applyFont(start, end, font3);//設定“底線”格式start=end+"內容2:".length();end=start+"底線2".length();richtext.applyFont(start, end, font3);cell.setCellValue(richtext);sheet.addMergedRegion(new CellRangeAddress(1,1,0,7));//合并單元格// 第六步,將檔案存到指定位置try{String path;path = ("C:/temp/傷損裝置通知單.xls");FileOutputStream fout = new FileOutputStream(path);wb.write(fout);fout.close();result=true;}catch (Exception e){e.printStackTrace();}if(result) return "成功";return "失敗";}public static void main (String[] args){ System.out.println("匯出C:/temp/傷損裝置通知單.xls------"+outExcleSssbtzd());}}
註:

1.我的例子放在了百度網盤,jar當然也在裡面。。。http://pan.baidu.com/s/1IpXS


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.