Java Jxl单元对齐

Java Jxl单元对齐,java,android,excel,alignment,jxl,Java,Android,Excel,Alignment,Jxl,我想知道如何在jxl库中为单元格设置对齐方式,它的默认对齐方式是底部,当我为WritableCellFormat设置对齐方式时,它会引发以下异常: jxl.write.biff.JxlWriteException: Attempt to modify a referenced format 我这样设置对齐方式: WritableFont tahomaboldpt = new WritableFont(WritableFont.TAHOMA, 10,WritableFont.BOLD); tah

我想知道如何在jxl库中为单元格设置对齐方式,它的默认对齐方式是底部,当我为
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);

这会在第三行引发异常。请提前感谢

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

步骤1: 您可以从另一个单元格读取格式(就像下面的代码或自己创建一个新的),然后创建一个可写的CellFormat对象[下面代码中的newFormat对象]

步骤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);
步骤3: 创建新单元格(或在excel中添加具有特定格式的单元格)时,请将格式添加为参数。 newFormat(WritableCellFormat对象)将显示要设置的新格式

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;

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

步骤1: 您可以从另一个单元格读取格式(就像下面的代码或自己创建一个新的),然后创建一个可写的CellFormat对象[下面代码中的newFormat对象]

步骤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);
步骤3: 创建新单元格(或在excel中添加具有特定格式的单元格)时,请将格式添加为参数。 newFormat(WritableCellFormat对象)将显示要设置的新格式

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;
注意!如中所述,不推荐使用对齐类。因此,静态访问如下所示:

format.setAlignment(Alignment.CENTRE);
对齐
自动位于包
jxl.write.Alignment
中,但不允许。所以,对齐单元格中文本的正确方法是使用jxl包
jxl.format.Alignment
。这样我们就可以写:

format = new WritableCellFormat(); 
format.setAlignment(Alignment.CENTRE);
问候。

注意!如中所述,不推荐使用对齐类。因此,静态访问如下所示:

format.setAlignment(Alignment.CENTRE);
对齐
自动位于包
jxl.write.Alignment
中,但不允许。所以,对齐单元格中文本的正确方法是使用jxl包
jxl.format.Alignment
。这样我们就可以写:

format = new WritableCellFormat(); 
format.setAlignment(Alignment.CENTRE);
问候。

这是一个很棒的教程:。这是一个很棒的教程:。