poi.hwpf word转HTML表格错位问题

Apache POI在将Word转换为HTML时,表格错位问题可能由获取下一单元格错误及word解析后存在的空行引起。通过对AbstractWordConverter的getNumberRowsSpanned和processTable函数进行重写,可以修复这些问题。重写getNumberRowsSpanned以正确获取合并单元格,而processTable则通过反射删除Table类中的空行。
摘要由CSDN通过智能技术生成

错位原因--获取下一单元格错误

poi转word转HTML表格错位有两个原因org.apache.poi.hwpf.converter.AbstractWordConverter类,getNumberRowsSpanned函数,获取下一个合并单元格错误。源码显示,根据当前单元格所在位置来获取下一行对应位置的单元格,必然会造成获取到的下一单元格与当前单元格非垂直合并的行,而正确的合并单元格为获取到造成错位。

源码:

    protected int getNumberRowsSpanned( Table table,
            final int[] tableCellEdges, int currentRowIndex,
            int currentColumnIndex, TableCell tableCell )
    {
        if ( !tableCell.isFirstVerticallyMerged() )
            return 1;

        final int numRows = table.numRows();

        int count = 1;
        for ( int r1 = currentRowIndex + 1; r1 < numRows; r1++ )
        {
            TableRow nextRow = table.getRow( r1 );
            if ( currentColumnIndex >= nextRow.numCells() )
                break;

            // we need to skip row if he don't have cells at all
            boolean hasCells = false
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值