日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HSSF 字体下划线

發布時間:2023/12/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HSSF 字体下划线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設置下劃線找了好久。最后找了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));row = sheet.createRow((int) 1);//設置下劃線代碼部分row.setHeightInPoints((float)21);HSSFCell cell = row.createCell((int) 0);String string="班組 "+bean.getBz()+" 儀器串號 "+bean.getYqch()+" 發現人 "+bean.getFxr()+" 復核人 "+bean.getFhr()+".";HSSFRichTextString richtext = new HSSFRichTextString(string);richtext.applyFont(0, string.length(), font1);int start="班組 ".length();int end=start+bean.getBz().length();richtext.applyFont(start, end, font3);start=end+" 儀器串號 ".length();end=start+bean.getYqch().length();richtext.applyFont(start, end, font3);start=end+" 發現人 ".length();end=start+bean.getFxr().length();richtext.applyFont(start, end, font3);start=end+" 復核人 ".length();end=start+bean.getFhr().length();richtext.applyFont(start, end, font3);cell.setCellValue(richtext);cell.setCellStyle(style);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


總結

以上是生活随笔為你收集整理的HSSF 字体下划线的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。