use of net.heartsome.cat.converter.msexcel2007.document.HeaderFooter in project translationstudio8 by heartsome.
the class SpreadsheetReader method readHeaderFooters.
private void readHeaderFooters(List<HeaderFooter> headerFooters) throws IOException {
for (HeaderFooter hf : headerFooters) {
String content = ReaderUtil.reCleanTag(hf.getContent());
String[] lcr = splitHeaderFooter(content);
StringBuffer skl = new StringBuffer();
for (String s : lcr) {
if (s.length() == 0) {
continue;
}
StringBuffer text = new StringBuffer();
readSplitedContent(s, skl, text);
if (text.length() == 0) {
continue;
}
writeXliffFile(xliffIdex - 1, text.toString());
}
hf.setContent(ReaderUtil.cleanTag(skl.toString()));
}
}
use of net.heartsome.cat.converter.msexcel2007.document.HeaderFooter in project translationstudio8 by heartsome.
the class XliffReader method readSheet.
private void readSheet(List<SheetPart> sheetList, IProgressMonitor monitor) throws InternalFileException {
if (monitor == null) {
monitor = new NullProgressMonitor();
}
monitor.beginTask(Messages.getString("msexcel.xliff2mse.task4"), sheetList.size() * 5);
List<String> sheetNames = new ArrayList<String>();
for (SheetPart sp : sheetList) {
monitor.worked(1);
String name = sp.getName();
name = processContent(name);
// 处理重复名称
int i = 1;
while (sheetNames.contains(name)) {
name += i;
i++;
}
sheetNames.add(name);
sp.setSheetName(name);
// read headers
monitor.worked(1);
List<HeaderFooter> headers = sp.getHeader();
for (HeaderFooter hf : headers) {
String content = hf.getContent();
content = processContent(content);
hf.setContent(content);
}
// update the file
sp.setHeaderFooter(headers);
monitor.worked(1);
DrawingsPart drawingp = sp.getDrawingsPart();
if (drawingp != null) {
List<CellAnchor> aList = drawingp.getCellAnchorList();
for (CellAnchor a : aList) {
List<ShapeTxBody> sList = a.getShapeList();
if (sList.size() == 0) {
continue;
}
for (ShapeTxBody s : sList) {
List<ShapeParagraph> pList = s.getTxBodyParagraghList();
for (ShapeParagraph p : pList) {
String content = p.getXmlContent();
content = processContent(content);
p.setXmlContent(content);
}
}
}
drawingp.updateDrawingObject();
}
monitor.worked(1);
List<Cell> cellList = sp.getCells("s");
for (Cell c : cellList) {
String content = c.getFullContent();
content = processContent(content);
c.setShareStringItemFullContent(content);
}
monitor.worked(1);
// read footer
List<HeaderFooter> footers = sp.getFoolter();
for (HeaderFooter hf : footers) {
String content = hf.getContent();
content = processContent(content);
hf.setContent(content);
}
// update the file
sp.setHeaderFooter(footers);
}
monitor.done();
}
use of net.heartsome.cat.converter.msexcel2007.document.HeaderFooter in project translationstudio8 by heartsome.
the class SpreadsheetReader method readSheets.
private void readSheets(List<SheetPart> sheetList, IProgressMonitor monitor) throws InternalFileException, IOException {
if (monitor == null) {
monitor = new NullProgressMonitor();
}
monitor.beginTask("", sheetList.size() * 5);
for (SheetPart sp : sheetList) {
// process sheet name
String name = sp.getName();
writeXliffFile(xliffIdex, name);
sp.setSheetName("%%%" + xliffIdex + "%%%");
xliffIdex++;
monitor.worked(1);
// read headers
List<HeaderFooter> headers = sp.getHeader();
readHeaderFooters(headers);
// update the file
sp.setHeaderFooter(headers);
monitor.worked(1);
// read drawing part
DrawingsPart drawingp = sp.getDrawingsPart();
if (drawingp != null) {
readDrawings(drawingp);
drawingp.updateDrawingObject();
}
monitor.worked(1);
List<Cell> cellList = sp.getCells("s");
for (Cell c : cellList) {
if (filterStyleIndex.contains(c.getStyleIndex())) {
// skip this cell
continue;
}
String cellText = c.getValue();
if (cellText == null || cellText.trim().length() == 0) {
// ignore the cell
continue;
}
List<Object[]> cellStyle = c.getCellCharacterStyles();
String[] segs = segmenter.segment(cellText);
StringBuffer bf = new StringBuffer();
for (String seg : segs) {
List<Object[]> s = ReaderUtil.getSegStyle(cellStyle, seg, cellText);
if (s.size() != 0) {
seg = ReaderUtil.appendSegStyle(seg, s);
}
bf.append("%%%").append(xliffIdex++).append("%%%");
// System.out.println(xliffIdex + ":" + seg);
writeXliffFile(xliffIdex - 1, seg);
}
c.setValue(bf.toString());
}
monitor.worked(1);
// read headers
List<HeaderFooter> footers = sp.getFoolter();
readHeaderFooters(footers);
// update the file
sp.setHeaderFooter(footers);
monitor.worked(1);
}
monitor.done();
}
Aggregations