aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-05-02 12:07:36 +0100
committerMichael Williamson <mike@zwobble.org>2016-05-02 12:07:36 +0100
commit90680b0208bba24a970f8b7fd6f9092f5ca90407 (patch)
tree4feeae49e3e130ce09c19e9b50ec8a28b6bd5ba8 /src/main
parent3de728c3d0fecbb3fa3e9b8019941cb51a3d2867 (diff)
Read colspan for table cells
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java8
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java11
2 files changed, 17 insertions, 2 deletions
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<DocumentElement> children;
- public TableCell(List<DocumentElement> children) {
+ public TableCell(int colspan, List<DocumentElement> 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<String> 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<String> relationshipId = element.getAttributeOrNone("r:id");
Optional<String> anchor = element.getAttributeOrNone("w:anchor");