首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果多个工作表包含RichText,则在将它们合并为一个工作簿时,RichText单元格从工作表2开始显示为空白

如果多个工作表包含RichText,则在将它们合并为一个工作簿时,RichText单元格从工作表2开始显示为空白
EN

Stack Overflow用户
提问于 2019-06-14 20:11:10
回答 1查看 52关注 0票数 0

我有多个Excel工作表,每个工作表包含几个RichText单元格,但是当我使用poi-ooxml将所有Excel工作表合并成一个工作簿时,第一个工作表正确显示,但在后续工作表中,我们丢失了RichText单元格的值,单元格显示为空白。

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 16:25:34

代码语言:javascript
复制
This issue is now fixed for me.
i have added below lines of code when relationship type is Shared String ("http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings"

):

代码语言:javascript
复制
sd = SstDocument.Factory.parse(p.getInputStream());
    targetsd = SstDocument.Factory.parse(partTarget.getInputStream());
    List<CTRst> ctRstArray = sd.getSst().getSiList();
    String sharedString = null;
    for (CTRst ctRst : ctRstArray) {
        if(ctRst.getRList() != null && ctRst.getRList().size()>0){
            List<CTRElt> rList = ctRst.getRList();
            targetsd.getSst().addNewSi().getRList().addAll(rList);
        }else if(ctRst.getRPhList() != null && ctRst.getRPhList().size() > 0){
            List<CTPhoneticRun> rphList = ctRst.getRPhList();
            targetsd.getSst().addNewSi().getRPhList().addAll(rphList);
        }else {
            sharedString = ctRst.getT();
            CTRst ctrst = targetsd.getSst().addNewSi();
            ctrst.setT(sharedString);
        }
    }



earlier the lines of code was:

sd = SstDocument.Factory.parse(p.getInputStream());
    targetsd = SstDocument.Factory.parse(partTarget.getInputStream());
    List<CTRst> ctRstArray = sd.getSst().getSiList();
    String sharedString = null;
    for (CTRst ctRst : ctRstArray) {

            sharedString = ctRst.getT();
            CTRst ctrst = targetsd.getSst().addNewSi();
            ctrst.setT(sharedString);               
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56597948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档