import java.io.File;import jxl.CellView;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.format.*;
public class JxlSeniorOper { private Workbook book;
private WritableWorkbook wbook;
private WritableSheet wsheet;
private static final String EXCEL_PATH = "d:/excel/senior_oper.xls";
public static void main(String[] args) {
JxlSeniorOper oper = new JxlSeniorOper();
oper.doNumberFormat();
}
/**
* 数据格式化
* 包括字符串字体、字号、粗细等,数字的显示格式
*/
public void doNumberFormat() {
String contents = "this is a test!";
try {
wbook = Workbook.createWorkbook(new File(EXCEL_PATH));
wsheet = wbook.createSheet("sheet1", 0);
CellView view = new CellView();
view.setAutosize(true);
view.setSize(800);
wsheet.setRowView(0, view);
view.setSize(100000);
wsheet.setColumnView(0, view);
WritableFont wfont = new WritableFont(WritableFont.TIMES,
12,
WritableFont.NO_BOLD,
true,
UnderlineStyle.NO_UNDERLINE,
Colour.RED,
ScriptStyle.NORMAL_SCRIPT);
WritableCellFormat wcf = new WritableCellFormat(wfont);
wcf.setAlignment(Alignment.CENTRE);
wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
Label label = new Label(0, 0, contents, wcf);
wsheet.addCell(label); wbook.write();
wbook.close();
} catch (Exception e1) {
System.out.println(e1.getMessage());
}
}}代码中标红部分,设置单元格的行高和列宽其中view.setAutosize(true);自动改变行高和列宽
不过,这个设置貌似对行高没有影响,只会影响列宽并且view.setSize(int num)还必须存在,否则,setAutosize不会发生作用
求高人解答,这个是jxl的bug,还是我的使用方法不对不胜感激。。
(第一次发帖,貌似好像没分当做技术交流吧)
额,没有红色的啊那我补上。
CellView view = new CellView();
view.setAutosize(true);
view.setSize(800);
wsheet.setRowView(0, view);
view.setSize(100000);
wsheet.setColumnView(0, view);介个是不是用法的问题
1369 wf.setItalic(true);
1370
1371 WritableCellFormat wcf = new WritableCellFormat(wf);
1372
1373 CellView cv = new CellView();
1374 cv.setSize(25 * 256);
1375 cv.setFormat(wcf);
//WritableSheet ws
1376 ws.setColumnView(0, cv);
1377 ws.setColumnView(1, 15);
其实这个跟我的写法一样啊,还是没办法自动设置行高、列宽啊还是只对设置列宽有效,对行高无任何作用
API中是这样描述的:
setSize(int d)
d-the width of the column in characters multiplied by 256, or the height of the row in 1/20ths of a point.
额谁给解决一下。。