作者:乔山办公网日期:
返回目录:excel表格制作
先打开一个文本文件,将导出的文件内容复制到文本文件,然后在复制回来就好了。
POI的上层API没有提供设置斜线的函数,你可以研究下它的底层类org.apache.poi.hssf.record.
ExtendedFormatRecord。一个单元格风格(包含对齐、边框、填充图案等等)在Excel文件的实现中由20个字节组成,而ExtendedFormatRecord就是实现对这20个字节操作的类。在第11至14这4个字节共32个比特中,第30和31位(即最高位的两个比特)就是控制斜边框的位,其中第30位控制左上角到右下角的斜线,e68a84e8a2ad7a64339值为1时表示该单元格有此斜线,第31位控制左下角到右上角的斜线,值为1时表示该单元格有此斜线;所以你只要找到能够对这两个比特进行设置的函数,问题就解决了。Excel规定,两条斜线的风格要一致,也就是其粗细、颜色必须一相同,而不能对两条斜线进行单元设置。于是,在第15至18这4个字节的32个比特中,第14至第20的7个比特用于存储斜线的颜色索引,第21至第24的4个比特用于存储斜线的风格(NONE, THIN, MEDIUM, DASHED, DOTTED, THICK等等)。总而言之,只要你在底层类中找到能够操作这三个地方的函数,就可以解决斜线问题了。我找过一下,没找到,哈哈;可能在其它的底层类里面有。希望对你有所帮助。
//上升 和 56 作为两个静态对象输入
Label label = null;
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.createFont(cell.getCellFormat().getFont().getName()), cell.getCellFormat().getFont().getPointSize(),
WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
wcfFC.setAlignment(jxl.format.Alignment.CENTRE);//设置单元格居中7a64e78988e69d83361
if(cell.getContents().toString().equals("56"){
label = new Label(cell.getColumn(), cell.getRow(), cell.getContents());
}else{
label = new Label(cell.getColumn(), cell.getRow(), cell.getContents(),wcfFC);
}
这么牛教我如何用NPOI吧!