首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jxl单元格对齐

Jxl单元格对齐
EN

Stack Overflow用户
提问于 2013-12-04 17:01:38
回答 2查看 10.5K关注 0票数 2

我想知道如何为jxl库中的单元格设置对齐方式,它的默认对齐方式是bottom,当我为WritableCellFormat设置对齐方式时,它会抛出这个异常:

代码语言:javascript
复制
jxl.write.biff.JxlWriteException: Attempt to modify a referenced format

我这样设置对齐方式:

代码语言:javascript
复制
WritableFont tahomaboldpt = new WritableFont(WritableFont.TAHOMA, 10,WritableFont.BOLD);
tahomaBold = new WritableCellFormat(tahomaboldpt);
tahomaBold.setAlignment(Alignment.CENTRE);

这提前在第三个line.Thanks中抛出了异常

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-04 17:13:41

当您想要以指定格式在电子表格中创建或添加单元格时,需要创建一个WritableCellFormat对象并将其作为参数传递。

步骤1:您可以从另一个单元格读取格式(就像下面的代码一样,或者自己创建一个新的单元格),然后用下面的代码创建一个WritableCellFormat ObjectnewFormat对象

步骤2:添加你想要的所有格式,例如背景,边框,对齐等,如下面的代码所示。

代码语言:javascript
复制
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)将显示您要设置的新格式。

代码语言:javascript
复制
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))); 

上述操作所需的导入。

代码语言:javascript
复制
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;
票数 4
EN

Stack Overflow用户

发布于 2017-08-21 01:00:34

注意!正如http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/中所报告的那样,Alignment类已弃用。因此,静态访问如下:

代码语言:javascript
复制
format.setAlignment(Alignment.CENTRE);

其中,类Alignment自动位于包jxl.write.Alignment中,但这是不允许的。因此,在单元格中对齐文本的正确方法是使用jxl包jxl.format.Alignment。这样我们就可以写:

代码语言:javascript
复制
format = new WritableCellFormat(); 
format.setAlignment(Alignment.CENTRE);

致以问候。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20370984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档