web环境;spring+jQuery+hibernate
前端jsp文件核心代码:
<div class="col-sm-10 col-xs-10 col-md-8 col-md-offset-2 text-right" style="padding: 10px 0;">
<input type="hidden" name="attid" id="attid" value="${attid }" />
<div id="tip4"></div>
<a id="dwywjs" class="andown worddd">下载word版</a>
</div>
<script>
$("#dwywjs").click(function(){
var attid="${映射表文件名.attid}";//对应数据库里该表名里的某一行具体的数据
var userid="${userSession.user.id}";//当前登录用户的id
var param = {
'userid': userid,
'attid' : attid,
'subtype' :'dwcxqd' //后台选用不同样式下载的标志
};
$.ajax({
url:'<c:url value="/embed/ajax/updatePass.htm"/>',
data : param,
type : 'get',
offline : false,
success:function(data){
if(data.code==2){
$("#tip4").show().html("<font color=\"green\" size=\"3\"> Word 文件下载 成功!已下载至桌面</font>");
$("#tip4").delay(2000).hide(0);
}else{
$("#tip4").show().html("<font color=\"red\" size=\"3\">Word 文件下载 失败!</font>");
}
}
});
});
</script>
前后端交互配置文件:
nsl-servlet.xml里配置网页和后台交互的一一对应:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<!-- - Application context -->
<beans>
<!-- 国际化 -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/classes/messages" />
<property name="defaultEncoding" value="UTF-8"></property>
<property name="fallbackToSystemLocale" value="false"/>
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
</bean>
<!-- 定义本地化变更拦截器 -->
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors" >
<list>
<ref local="localeChangeInterceptor"/>
</list>
</property>
<property name="mappings">
<props>
<prop key="/embed/ajax/updatePass.htm">
updatepassController
</prop>
</props>
</property>
</bean>
<bean id="updatepassController"
class="cn.nsl.web.embed.ajax.UpdatepassController">
<property name="dao" ref="commonDAOProxy" />
</bean>
</beans>
需要的jar包:ooxml-schemas-1.1.jar,poi-ooxml-3.15.jar,poi-3.15.jar,poi-examples-3.15.jar,poi-excelant-3.15.jar,poi-scratchpad-3.15.jar
后台ajax下载文件:
package cn.nsl.web.embed.ajax;
import java.io.File;
import java.io.FileOutputStream;
import java.math.BigInteger;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.filechooser.FileSystemView;
import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHeight;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTJc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSectPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblGrid;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblGridCol;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTrPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHeightRule;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;
import cn.nsl.domain.glob.*;
import cn.nsl.web.util.Md5Security;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.jbetter.spring.web.JSONObjectAbstractController;
public class UpdatepassController extends JSONObjectAbstractController {
@Override
protected String handleAjaxRequestInternal(
HttpServletRequest request,
HttpServletResponse response) throws Exception {
String userid = request.getParameter("userid");
String json ="{}";
Gson gson = new GsonBuilder().create(); //创建json对象,目的将最后想要的数据传递到前台
String subtype = request.getParameter("subtype"); //下载类型
HashMap<String,String> data = new HashMap<String,String>();
if("dwcxqd".equals(subtype)){
String attid = request.getParameter("attid");
XWPFDocument document= new XWPFDocument();
FileSystemView fsv = FileSystemView.getFileSystemView();
File com=fsv.getHomeDirectory(); //获取桌面路径
List<NovKjcx> nnlist=dao.find(" from NovKjcx obj where obj.attid='"+attid+"' and obj.userid="+userid); //NovKjcx为通过hibernate写的与数据库表对应的java文件,包含表的字段以及字段类型及其get()和set()方法
FileOutputStream outs = new FileOutputStream(new File(com+"/cxdd.doc")); //在本地桌面生成word文件
XWPFParagraph titleParagraph = document.createParagraph(); //添加标题
titleParagraph.setAlignment(ParagraphAlignment.CENTER); //设置段落居中
XWPFRun titleParagraphRun = titleParagraph.createRun(); //声明一个段落
titleParagraphRun.setText("XXXX清单"); //设置段落内容,也可以从数据库读数据写入
titleParagraphRun.setColor("000000"); //设置这一行字体颜色
titleParagraphRun.setFontSize(20); //设置这一行字体大小
//两个表格之间加个换行
XWPFParagraph paragraph = document.createParagraph();
XWPFRun paragraphRun = paragraph.createRun();
paragraphRun.setText("\r");
/***方式二***/
XWPFTable ComTable = document.createTable(24,9); //声明一个24行9列的表格
setTableWidthAndHAlign(ComTable, "9024", STJc.CENTER); //设置表的总体宽度
setTableCellMargin(ComTable, 0, 20, 0, 20); //这里相当于css里设置margin的值(上,左,下,右)
//设置列宽
int[] colWidths = new int[] { 4000, 2638, 525, 3692 ,2169,2169,2169,2169,2169};
setTableGridCol(ComTable, colWidths);
//读取数据库相关数据
List<NovKjcx> list=dao.find(" from NovKjcx obj where obj.attid='"+attid+"' and obj.userid="+userid);
Long ddid=null;
String cce=null;
if(list!=null&&list.size()>0){
NovKjcx tep=list.get(0);
ddid=tep.getId();
cce=tep.getKjcxwt_code();
UserLxr Lxr=tep.getUser_lxr();
ComTable.getRow(0).getCell(0).setText("XXXX委托日期 * "+tep.getKjcxwt_wtrq()); //(0.0)表格的坐标从(0,0)开始
if(tep.getKjcxwt_yqrq()==null){
ComTable.getRow(0).getCell(5).setText("XXXX期望完成日期 * "+tep.getKjcxwt_finishdate()); //(0.5)
}else{
ComTable.getRow(0).getCell(5).setText("XXXX期望完成日期 * "+tep.getKjcxwt_yqrq()); //(0.5)
}
ComTable.getRow(1).getCell(0).setText("委托须知 *"); //(1.0)表格的第一行第0列
ComTable.getRow(1).getCell(1).setText("1.委托人必须按要求认真填写并对所提供资料的真实性及可靠性负责。" +
"查新委托内容经确认并被受理后,则不能随意更改。若委托人要求更改查新内容或增加查新点," +
"则需重新办理查新委托,并按新项目收费,或双方协商酌情增加收费。 " +
"2.项目查新实行先付费制度,委托人与查新机构确认查新内容并按收费标准办理缴款手续后,查新委托方被受理。" +
"3.查新受理日以缴款或汇款凭证传真至本查新机构的日期为准。" +
"4.若有其他情况,请电话咨询。"); //(1.1)
ComTable.getRow(3).getCell(0).setText("项目名称 *"); //(3.0)
ComTable.getRow(3).getCell(1).setText("中文 "+tep.getKjcxwt_cname()); //(3.1)
ComTable.getRow(4).getCell(1).setText("英文 "+tep.getKjcxwt_ename()); //(4.1)
ComTable.getRow(5).getCell(0).setText("委托人"); //(5.0)
ComTable.getRow(5).getCell(1).setText("机构名称 *"); //(5.1)
ComTable.getRow(5).getCell(2).setText(Lxr.getOrg_cname()); //(5.2)
ComTable.getRow(6).getCell(1).setText("邮政编码 *"); //(6.1)
ComTable.getRow(6).getCell(2).setText(Lxr.getOrg_postcode()); //(6.2)
ComTable.getRow(6).getCell(3).setText("通信地址 *"); //(6.3)
ComTable.getRow(6).getCell(4).setText(Lxr.getOrg_address()); //(6.4)
ComTable.getRow(7).getCell(1).setText("项目负责人 *"); //(7.1)
ComTable.getRow(7).getCell(2).setText(Lxr.getFzr_cname()); //(7.2)
ComTable.getRow(7).getCell(3).setText("电话 *"); //(7.3)
ComTable.getRow(7).getCell(4).setText(Lxr.getFzr_tel()); //(7.4)
ComTable.getRow(7).getCell(5).setText("手机 *"); //(7.5)
ComTable.getRow(7).getCell(6).setText(Lxr.getFzr_mobile()); //(7.6)
ComTable.getRow(7).getCell(7).setText("EMAIL *"); //(7.7)
ComTable.getRow(7).getCell(8).setText(Lxr.getFzr_email()); //(7.8)
ComTable.getRow(8).getCell(1).setText("联系人 *"); //(8.1)
ComTable.getRow(8).getCell(2).setText(Lxr.getLxr_cname()); //(8.2)
ComTable.getRow(8).getCell(3).setText("电话 *"); //(8.3)
ComTable.getRow(8).getCell(4).setText(Lxr.getLxr_phone()); //(8.4)
ComTable.getRow(8).getCell(5).setText("手机 *"); //(8.5)
ComTable.getRow(8).getCell(6).setText(Lxr.getLxr_mobile()); //(8.6)
ComTable.getRow(8).getCell(7).setText("EMAIL *"); //(8.7)
ComTable.getRow(8).getCell(8).setText(Lxr.getLxr_email()); //(8.8)
ComTable.getRow(9).getCell(0).setText("XX目的 *"); //(9.0)
ComTable.getRow(9).getCell(1).setText(" XXXX:"); //(9.1)
ComTable.getRow(10).getCell(1).setText("XXXX:"); //(10.1)
ComTable.getRow(11).getCell(1).setText("其他:"); //(11.1)
List<NovKjcxLX> lxlist=dao.find(" from NovKjcxLX obj where obj.type=0 order by obj.id ");
List<NovKjcxPurpose> plist=dao.find(" from NovKjcxPurpose obj where obj.novkjcx.id="+ddid);
for(NovKjcxLX lxx:lxlist){
String mdty=lxx.getCxmd_type();
if("XXXX".equals(mdty)){
for(NovKjcxPurpose pupose:plist){
String pup=pupose.getPurpose();
Long lid=lxx.getId();
if((Long.valueOf(pup)).longValue()==lid.longValue()){
ComTable.getRow(9).getCell(2).setText(lxx.getCxmd_cname()); //(9.2)
}
}
}
if("XXXX".equals(mdty)){
for(NovKjcxPurpose pupose:plist){
String pup=pupose.getPurpose();
Long lid=lxx.getId();
if((Long.valueOf(pup)).longValue()==lid.longValue()){
ComTable.getRow(10).getCell(2).setText(lxx.getCxmd_cname()); //(10.2)
}
}
}
if("其他".equals(mdty)){
for(NovKjcxPurpose pupose:plist){
String pup=pupose.getPurpose();
Long lid=lxx.getId();
if((Long.valueOf(pup)).longValue()==lid.longValue()){
ComTable.getRow(11).getCell(2).setText(lxx.getCxmd_cname()); //(11.2)
}
}
}
}
ComTable.getRow(12).getCell(0).setText("XX范围 *"); //(12.0)
ComTable.getRow(12).getCell(1).setText(tep.getKjcxwt_cxfw()); //(12.1)
ComTable.getRow(13).getCell(0).setText("XXXX的科学技术要点"); //(13.0)
ComTable.getRow(13).getCell(1).setText(tep.getKjcxwt_cxyd()); //(13.1)
ComTable.getRow(14).getCell(0).setText("XX点"); //(14.0)
List<NovKjcxCXD> cxdlist=dao.find(" from NovKjcxCXD obj where obj.novkjcx.id="+ddid);
if(cxdlist!=null&&cxdlist.size()>0){
String cxds="";
for(NovKjcxCXD CXD:cxdlist){
cxds +=CXD.getKjyd();
}
ComTable.getRow(14).getCell(1).setText(cxds); //(14.1)
}
ComTable.getRow(15).getCell(0).setText("参考"); //(15.0)
List<NovKjcxKeyword> keywordlist=dao.find(" from NovKjcxKeyword obj where obj.novkjcx.id="+ddid);
if(cxdlist!=null&&cxdlist.size()>0){
String jscs="";
for(NovKjcxKeyword JSC:keywordlist){
jscs +=" 中文:"+JSC.getCkeyword();
jscs +=" 英文:"+JSC.getEkeyword();
}
ComTable.getRow(15).getCell(1).setText(jscs); //(15.1)
}
ComTable.getRow(16).getCell(0).setText("XX分类 *"); //(16.0)
List<Subject> subList=dao.find(" from Subject obj where obj.subject_type='XX分类' and obj.del=0");
if(subList!=null&&subList.size()>0){
for(Subject ssb:subList){
if((ssb.getId()).longValue()==(tep.getKjcx_subject_id().getId()).longValue()){
ComTable.getRow(16).getCell(1).setText(ssb.getSubject_cname()); //(16.1)
}
}
}
ComTable.getRow(17).getCell(0).setText("XX分类 *"); //(17.0)
List<Subject> industryList=dao.find(" from Subject obj where obj.subject_type='XX分类' and obj.del=0");
if(industryList!=null&&industryList.size()>0){
for(Subject ius:industryList){
Long ii=ius.getId();
Long tp=tep.getKjcx_chanye_id().getId();
if(ii.longValue()==tp.longValue()){
ComTable.getRow(17).getCell(1).setText(ius.getSubject_cname()); //(17.1)
}
}
}
ComTable.getRow(18).getCell(0).setText("希望完成日期"); //(18.0)
if(tep.getKjcxwt_yqrq()==null){
ComTable.getRow(18).getCell(1).setText(tep.getKjcxwt_finishdate()); //(18.1)
}else{
ComTable.getRow(18).getCell(1).setText(tep.getKjcxwt_yqrq()); //(18.1)
}
ComTable.getRow(19).getCell(0).setText("需要红章份数"); //(19.0)
String rednm =tep.getRednums().toString();
ComTable.getRow(19).getCell(1).setText(rednm); //(19.1)
ComTable.getRow(20).getCell(0).setText("提交方式"); //(20.0)
String sbtype=tep.getSubmit_type().toString();
if("1".equals(sbtype)){
ComTable.getRow(20).getCell(1).setText("EMS快递预付"); //(20.1)
}else if("0".equals(sbtype)){
ComTable.getRow(20).getCell(1).setText("自取"); //(20.1)
}else if("2".equals(sbtype)){
ComTable.getRow(20).getCell(1).setText("顺丰快递到付"); //(20.1)
}
ComTable.getRow(21).getCell(0).setText("指定查新员"); //(21.0)
List<User> userList=dao.find(" from User obj where obj.type=2");
if(userList!=null&&userList.size()>0){
for(User ue:userList){
if((tep.getUser_id_cxyuan().getId()).longValue()==(ue.getId()).longValue()){
ComTable.getRow(21).getCell(1).setText(ue.getCname()); //(21.1)
}
}
}
ComTable.getRow(22).getCell(0).setText("备注"); //(22.0)
ComTable.getRow(22).getCell(1).setText(tep.getKjcxwt_memo()); //(22.1)
ComTable.getRow(23).getCell(0).setText("添加附件"); //(23.0)
List<ReportInfo> rlist=dao.find(" from ReportInfo obj where obj.attach_code='"+cce+"' and obj.del=0");
if(rlist!=null&&rlist.size()>0){
ComTable.getRow(23).getCell(1).setText(rlist.get(0).getLocalurl()); //(23.1)
}
}
ComTable.getRow(0).getCell(0).setColor("E1E6F6"); //(0.0)
ComTable.getRow(0).getCell(5).setColor("E1E6F6"); //(0.5)
//横向合并单元格
mergeCellsHorizontal(ComTable,0,0,4); // 合并第0行的从第0列开始到底4列为一格
mergeCellsHorizontal(ComTable,0,5,8); // 合并第0行的从第5列开始到底8列为一格
mergeCellsHorizontal(ComTable,1,1,8);
mergeCellsHorizontal(ComTable,2,1,8);
mergeCellsHorizontal(ComTable,3,1,8);
mergeCellsHorizontal(ComTable,4,1,8);
mergeCellsHorizontal(ComTable,5,2,8);
mergeCellsHorizontal(ComTable,6,4,8);
mergeCellsHorizontal(ComTable,9,2,8);
mergeCellsHorizontal(ComTable,10,2,8);
mergeCellsHorizontal(ComTable,11,2,8);
mergeCellsHorizontal(ComTable,12,1,8);
mergeCellsHorizontal(ComTable,13,1,8);
mergeCellsHorizontal(ComTable,14,1,8);
mergeCellsHorizontal(ComTable,15,1,8);
mergeCellsHorizontal(ComTable,16,1,8);
mergeCellsHorizontal(ComTable,17,1,8);
mergeCellsHorizontal(ComTable,18,1,8);
mergeCellsHorizontal(ComTable,19,1,8);
mergeCellsHorizontal(ComTable,20,1,8);
mergeCellsHorizontal(ComTable,21,1,8);
mergeCellsHorizontal(ComTable,22,1,8);
mergeCellsHorizontal(ComTable,23,1,8);
//纵向合并单元格
for(int k=0;k<9;k++){//垂直
mergeCellsVertically(ComTable,k,1,2); //合并第k列的第一行和第二行
}
for(int k=0;k<1;k++){//垂直
mergeCellsVertically(ComTable,k,3,4);
}
for(int k=0;k<1;k++){//垂直
mergeCellsVertically(ComTable,k,5,8);
}
for(int k=0;k<1;k++){//垂直
mergeCellsVertically(ComTable,k,9,11);
}
CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
/*CTPageSz pgsz = sectPr.isSetPgSz() ? sectPr.getPgSz() : sectPr.addNewPgSz();
//设置为A3纸张
pgsz.setW(BigInteger.valueOf(15840));
pgsz.setH(BigInteger.valueOf(12240));
pgsz.setOrient(STPageOrientation.LANDSCAPE);*/
XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);
//添加页眉
CTP ctpHeader = CTP.Factory.newInstance();
CTR ctrHeader = ctpHeader.addNewR();
CTText ctHeader = ctrHeader.addNewT();
String headerText = "XXXXXXXXX";
ctHeader.setStringValue(headerText);
XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
//设置为右对齐
headerParagraph.setAlignment(ParagraphAlignment.RIGHT);
XWPFParagraph[] parsHeader = new XWPFParagraph[1];
parsHeader[0] = headerParagraph;
policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);
//添加页脚
CTP ctpFooter = CTP.Factory.newInstance();
CTR ctrFooter = ctpFooter.addNewR();
CTText ctFooter = ctrFooter.addNewT();
String footerText = "XXXXXXXX";
ctFooter.setStringValue(footerText);
XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, document);
headerParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFParagraph[] parsFooter = new XWPFParagraph[1];
parsFooter[0] = footerParagraph;
policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);
document.write(outs);
outs.close();
System.out.println("create XXXX订单详情单 success.");
data.put("code", "2");
}
if(data!=null)
json=gson.toJson(data); //传递一个参数到json里返回前台,告知是否成功并给予提示信息
return json;
}
// word跨列合并单元格
public static void mergeCellsHorizontal(XWPFTable table, int row, int fromCell, int toCell) {
for (int cellIndex = fromCell; cellIndex <= toCell; cellIndex++) {
XWPFTableCell cell = table.getRow(row).getCell(cellIndex);
if ( cellIndex == fromCell ) {
// The first merged cell is set with RESTART merge value
cell.getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);
} else {
// Cells which join (merge) the first one, are set with CONTINUE
cell.getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);
}
}
}
// word跨行并单元格
public static void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow) {
for (int rowIndex = fromRow; rowIndex <= toRow; rowIndex++) {
XWPFTableCell cell = table.getRow(rowIndex).getCell(col);
if ( rowIndex == fromRow ) {
// The first merged cell is set with RESTART merge value
cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART);
} else {
// Cells which join (merge) the first one, are set with CONTINUE
cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE);
}
}
}
/**
* @Description: 设置表格总宽度与水平对齐方式
*/
public static void setTableWidthAndHAlign(XWPFTable table, String width,
STJc.Enum enumValue) {
CTTblPr tblPr = getTableCTTblPr(table);
CTTblWidth tblWidth = tblPr.isSetTblW() ? tblPr.getTblW() : tblPr
.addNewTblW();
if (enumValue != null) {
CTJc cTJc = tblPr.addNewJc();
cTJc.setVal(enumValue);
}
tblWidth.setW(new BigInteger(width));
tblWidth.setType(STTblWidth.DXA);
}
public static CTTblPr getTableCTTblPr(XWPFTable table) {
CTTbl ttbl = table.getCTTbl();
CTTblPr tblPr = ttbl.getTblPr() == null ? ttbl.addNewTblPr() : ttbl
.getTblPr();
return tblPr;
}
/**
* @Description: 设置单元格Margin
*/
public static void setTableCellMargin(XWPFTable table, int top, int left,
int bottom, int right) {
table.setCellMargins(top, left, bottom, right);
}
/**
* @Description: 设置表格列宽
*/
public static void setTableGridCol(XWPFTable table, int[] colWidths) {
CTTbl ttbl = table.getCTTbl();
CTTblGrid tblGrid = ttbl.getTblGrid() != null ? ttbl.getTblGrid()
: ttbl.addNewTblGrid();
for (int j = 0, len = colWidths.length; j < len; j++) {
CTTblGridCol gridCol = tblGrid.addNewGridCol();
gridCol.setW(new BigInteger(String.valueOf(colWidths[j])));
}
}
/**
* @Description: 设置行高
*/
public static void setRowHeight(XWPFTableRow row, String hight,
STHeightRule.Enum heigthEnum) {
CTTrPr trPr = getRowCTTrPr(row);
CTHeight trHeight;
if (trPr.getTrHeightList() != null && trPr.getTrHeightList().size() > 0) {
trHeight = trPr.getTrHeightList().get(0);
} else {
trHeight = trPr.addNewTrHeight();
}
trHeight.setVal(new BigInteger(hight));
if (heigthEnum != null) {
trHeight.setHRule(heigthEnum);
}
}
public static CTTrPr getRowCTTrPr(XWPFTableRow row) {
CTRow ctRow = row.getCtRow();
CTTrPr trPr = ctRow.isSetTrPr() ? ctRow.getTrPr() : ctRow.addNewTrPr();
return trPr;
}
}