InvalidFormatException: не удается прочитать часть типов содержимого - PullRequest
0 голосов
/ 25 января 2020

Я работаю с инструментарием IBM и столкнулся с проблемой, когда хотел получить письмо от Gmail и обработать текст полученного файла Excel.

Используются коды Java для этой программы следующее:

public void evaluate(MbMessageAssembly inAssembly) throws MbException {
        MbOutputTerminal out = getOutputTerminal("out");
        MbOutputTerminal alt = getOutputTerminal("alternate");
        MbMessage inMessage = inAssembly.getMessage();
        MbMessageAssembly outAssembly = null;
        try {
            // create new message as a copy of the input
            //          SET OutputRoot = InputRoot;
            MbMessage outMessage = new MbMessage(inMessage);

//          SET OutputLocalEnvironment = InputLocalEnvironment;// UNGEFAEHR
            outAssembly = new MbMessageAssembly(inAssembly, outMessage);            

            // Blob Data
            MbElement blob = outMessage.getRootElement().getFirstElementByPath("/BLOB/BLOB");                   

            byte[] blobInBytes  = (byte[])(blob.getValue()); 
            outMessage.getRootElement().getLastChild().delete();

            // Create JSON Object
            outMessage.getRootElement().createElementAsLastChild(MbJSON.PARSER_NAME);

            MbElement refJSON = outMessage.getRootElement().getLastChild();

            MbElement refData = refJSON.createElementAsLastChild(MbElement.TYPE_NAME, "Data", null);

            // read data from byte arrays as streams of bytes(Read Excel)
            InputStream stream = new ByteArrayInputStream(blobInBytes); 
                                    // creating a new file instance 
                                    // creating Workbook instance that refers to .xlsx file                             

                                    XSSFWorkbook wb = new XSSFWorkbook(stream);
                                    XSSFSheet sheet = wb.getSheetAt(1); 
//                                  Sheet sheet = workbook.getSheetAt(1);
                                    Iterator<Row> itr = sheet.iterator();                                                                                                                                       

После строки XSSFWorkbook wb = new XSSFWorkbook(stream); процесс IBMtollkit остановится со следующей ошибкой:

Text:CHARACTER:org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Can't read content types part !

Как отделить строки от Excel после файла, полученного из gmail, а не файла из Local?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...