poi设置word表格单元格宽度_java poi 设置word 格式如表格一类的

2012-05-29 回答

你好,试试以下代码行不行。

package com.sample;

import java.awt.color;

import java.io.fileoutputstream;

import java.io.ioexception;

import com.lowagie.text.cell;

import com.lowagie.text.document;

import com.lowagie.text.documentexception;

import com.lowagie.text.element;

import com.lowagie.text.font;

import com.lowagie.text.fontfactory;

import com.lowagie.text.image;

import com.lowagie.text.pagesize;

import com.lowagie.text.paragraph;

import com.lowagie.text.phrase;

import com.lowagie.text.table;

import com.lowagie.text.pdf.basefont;

import com.lowagie.text.rtf.rtfwriter2;

/**

*

* @author wangyanjun

* @email bd_wyj@sina.com

* @createdate jun 12, 2008

*/

public class createworddemo {

public void createdoccontext(string file) throws documentexception,

ioexception {

// 设置纸张大小

document document = new document(pagesize.a4);

// 建立一个书写器(writer)与document对象关联,通过书写器(writer)可以将文档写入到磁盘中

rtfwriter2.getinstance(document, new fileoutputstream(file));

document.open();

// 设置中文字体

basefont bfchinese = basefont.createfont("stsongstd-light",

"unigb-ucs2-h", basefont.not_embedded);

// 标题字体风格

font titlefont = new font(bfchinese, 12, font.bold);

// 正文字体风格

font contextfont = new font(bfchinese, 10, font.normal);

paragraph title = new paragraph("标题");

// 设置标题格式对齐方式

title.setalignment(element.align_center);

title.setfont(titlefont);

document.add(title);

string contextstring = "itext是一个能够快速产生pdf文件的java类库。"

+ " \n"// 换行

+ "itext的java类对于那些要产生包含文本,"

+ "表格,图形的只读文档是很有用的。它的类库尤其与java servlet有很好的给合。"

+ "使用itext与pdf能够使你正确的控制servlet的输出。";

paragraph context = new paragraph(contextstring);

// 正文格式左对齐

context.setalignment(element.align_left);

context.setfont(contextfont);

// 离上一段落(标题)空的行数

context.setspacingbefore(5);

// 设置第一行空的列数

context.setfirstlineindent(20);

document.add(context);

//利用类fontfactory结合font和color可以设置各种各样字体样式

/**

* font.underline 下划线,font.bold 粗体

*/

paragraph underline = new paragraph("下划线的实现", fontfactory.getfont(

fontfactory.helvetica_boldoblique, 18, font.underline,

new color(0, 0, 255)));

document.add(underline);

// 设置 table 表格

table atable = new table(3);

int width[] = {25,25,50};

atable.setwidths(width);//设置每列所占比例

atable.setwidth(90); // 占页面宽度 90%

atable.setalignment(element.align_center);//居中显示

atable.setalignment(element.align_middle);//纵向居中显示

atable.setautofillemptycells(true); //自动填满

atable.setborderwidth(1); //边框宽度

atable.setbordercolor(new color(0, 125, 255)); //边框颜色

atable.setpadding(2);//衬距,看效果就知道什么意思了

atable.setspacing(3);//即单元格之间的间距

atable.setborder(2);//边框

//设置表头

/**

* cell.setheader(true);是将该单元格作为表头信息显示;

* cell.setcolspan(3);指定了该单元格占3列;

* 为表格添加表头信息时,要注意的是一旦表头信息添加完了之后,

* 必须调用 endheaders()方法,否则当表格跨页后,表头信息不会再显示

*/

cell hadercell = new cell("表格表头");

hadercell.setheader(true);

hadercell.setcolspan(3);

atable.addcell(hadercell);

atable.endheaders();

font fontchinese = new font(bfchinese, 12, font.normal, color.green);

cell cell = new cell(new phrase("这是一个测试的 3*3 table 数据", fontchinese ));

cell.setverticalalignment(element.align_top);

cell.setbordercolor(new color(255, 0, 0));

cell.setrowspan(2);

atable.addcell(cell);

atable.addcell(new cell("#1"));

atable.addcell(new cell("#2"));

atable.addcell(new cell("#3"));

atable.addcell(new cell("#4"));

cell cell3 = new cell(new phrase("一行三列数据", fontchinese ));

cell3.setcolspan(3);

cell3.setverticalalignment(element.align_center);

atable.addcell(cell3);

document.add(atable);

document.add(new paragraph("\n"));

//添加图片

image img=image.getinstance("d:\\img01800.jpg");

img.setabsoluteposition(0, 0);

img.setalignment(image.right);//设置图片显示位置

img.scaleabsolute(12,35);//直接设定显示尺寸

img.scalepercent(50);//表示显示的大小为原尺寸的50%

img.scalepercent(25, 12);//图像高宽的显示比例

img.setrotation(30);//图像旋转一定角度

document.add(img);

document.close();

}

/**

* @param args

*/

public static void main(string[] args) {

createworddemo word = new createworddemo();

string file = "c:/demo1.doc";

try {

word.createdoccontext(file);

} catch (documentexception e) {

e.printstacktrace();

} catch (ioexception e) {

e.printstacktrace();

}

}

}

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

weixin_39555415

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值