From 90680b0208bba24a970f8b7fd6f9092f5ca90407 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 2 May 2016 12:07:36 +0100 Subject: Read colspan for table cells --- .../org/zwobble/mammoth/internal/documents/TableCell.java | 8 +++++++- .../java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java | 11 ++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java b/src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java index f0ce7be..69f8fa8 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java @@ -3,10 +3,16 @@ package org.zwobble.mammoth.internal.documents; import java.util.List; public class TableCell implements DocumentElement, HasChildren { + private final int colspan; private final List children; - public TableCell(List children) { + public TableCell(int colspan, List children) { this.children = children; + this.colspan = colspan; + } + + public int getColspan() { + return colspan; } @Override diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java index 113578d..47034cc 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java @@ -66,7 +66,7 @@ public class BodyXmlReader { case "w:tr": return readElements(element.children()).map(TableRow::new); case "w:tc": - return readElements(element.children()).map(TableCell::new); + return readTableCell(element); case "w:hyperlink": return readHyperlink(element); @@ -231,6 +231,15 @@ public class BodyXmlReader { } } + private ReadResult readTableCell(XmlElement element) { + Optional gridSpan = element + .findChildOrEmpty("w:tcPr") + .findChildOrEmpty("w:gridSpan") + .getAttributeOrNone("w:val"); + int colspan = gridSpan.map(Integer::parseInt).orElse(1); + return readElements(element.children()).map(children -> new TableCell(colspan, children)); + } + private ReadResult readHyperlink(XmlElement element) { Optional relationshipId = element.getAttributeOrNone("r:id"); Optional anchor = element.getAttributeOrNone("w:anchor"); -- cgit v1.2.3