Если несколько листов содержат RichText, то при объединении их в одну рабочую книгу ячейка RichText отображается как пустая с листа 2 и далее - PullRequest
0 голосов
/ 14 июня 2019

У меня несколько листов Excel, каждый лист содержит несколько ячеек RichText, но когда я объединяю все листы Excel в одну рабочую книгу, используя poi-ooxml, тогда первый лист отображается правильно, но на последующих листах мы потеряли значение ячейки RichText, и ячейка выглядит пустой.

1 Ответ

0 голосов
/ 26 июня 2019
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"

):

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);               
    }
...