我想知道如何为jxl库中的单元格设置对齐方式,它的默认对齐方式是bottom,当我为WritableCellFormat设置对齐方式时,它会抛出这个异常:
jxl.write.biff.JxlWriteException: Attempt to modify a referenced format我这样设置对齐方式:
WritableFont tahomaboldpt = new WritableFont(WritableFont.TAHOMA, 10,WritableFont.BOLD);
tahomaBold = new WritableCellFormat(tahomaboldpt);
tahomaBold.setAlignment(Alignment.CENTRE);这提前在第三个line.Thanks中抛出了异常
发布于 2013-12-04 17:13:41
当您想要以指定格式在电子表格中创建或添加单元格时,需要创建一个WritableCellFormat对象并将其作为参数传递。
步骤1:您可以从另一个单元格读取格式(就像下面的代码一样,或者自己创建一个新的单元格),然后用下面的代码创建一个WritableCellFormat ObjectnewFormat对象
步骤2:添加你想要的所有格式,例如背景,边框,对齐等,如下面的代码所示。
WritableCellFormat newFormat = null;
WritableSheet sheet = workbook.getSheet(0);
Cell readCell = sheet.getCell(column, row); //read format from another cell(if you want to copy its existing properties otherwise you can ignore).
WritableCellFormat cellFormatObj = new WritableCellFormat(
noBoldFont);
CellFormat readFormat = readCell.getCellFormat() == null ? cellFormatObj
: readCell.getCellFormat();
newFormat = new WritableCellFormat(readFormat);
newFormat.setBackground(Colour.WHITE);
newFormat.setBorder(jxl.format.Border.BOTTOM,jxl.format.BorderLineStyle.THIN);
newFormat.setAlignment(Alignment.CENTRE);第三步:新建单元格(或在excel中添加特定格式的单元格)时,将格式作为参数添加。newFormat(WritableCellFormat objecT)将显示您要设置的新格式。
WritableSheet s = workbook.getSheet(0);
//column, row , where you wan the new format , note newFormat is passed as parameter.
s.addCell(new Label(column, row, request.getRuleId(), copyCellFormat(s, column,
newFormat))); 上述操作所需的导入。
import jxl.Cell;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.CellFormat;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;发布于 2017-08-21 01:00:34
注意!正如http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/中所报告的那样,Alignment类已弃用。因此,静态访问如下:
format.setAlignment(Alignment.CENTRE);其中,类Alignment自动位于包jxl.write.Alignment中,但这是不允许的。因此,在单元格中对齐文本的正确方法是使用jxl包jxl.format.Alignment。这样我们就可以写:
format = new WritableCellFormat();
format.setAlignment(Alignment.CENTRE);致以问候。
https://stackoverflow.com/questions/20370984
复制相似问题