Fix whitespace

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1563660 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2014-02-02 16:44:30 +00:00
parent e023d34c9a
commit d07ce077f5
2 changed files with 185 additions and 185 deletions

View File

@ -94,191 +94,191 @@ public class EventBasedExcelExtractor extends POIOLE2TextExtractor implements or
return _dir.getFileSystem(); return _dir.getFileSystem();
} }
/** /**
* Would return the document information metadata for the document, * Would return the document information metadata for the document,
* if we supported it * if we supported it
*/ */
public DocumentSummaryInformation getDocSummaryInformation() { public DocumentSummaryInformation getDocSummaryInformation() {
throw new IllegalStateException("Metadata extraction not supported in streaming mode, please use ExcelExtractor"); throw new IllegalStateException("Metadata extraction not supported in streaming mode, please use ExcelExtractor");
} }
/** /**
* Would return the summary information metadata for the document, * Would return the summary information metadata for the document,
* if we supported it * if we supported it
*/ */
public SummaryInformation getSummaryInformation() { public SummaryInformation getSummaryInformation() {
throw new IllegalStateException("Metadata extraction not supported in streaming mode, please use ExcelExtractor"); throw new IllegalStateException("Metadata extraction not supported in streaming mode, please use ExcelExtractor");
} }
/**
* Would control the inclusion of cell comments from the document,
* if we supported it
*/
public void setIncludeCellComments(boolean includeComments) {
throw new IllegalStateException("Comment extraction not supported in streaming mode, please use ExcelExtractor");
}
/**
* Would control the inclusion of headers and footers from the document,
* if we supported it
*/
public void setIncludeHeadersFooters(boolean includeHeadersFooters) {
throw new IllegalStateException("Header/Footer extraction not supported in streaming mode, please use ExcelExtractor");
}
/**
* Should sheet names be included? Default is true
*/
public void setIncludeSheetNames(boolean includeSheetNames) {
_includeSheetNames = includeSheetNames;
}
/**
* Should we return the formula itself, and not
* the result it produces? Default is false
*/
public void setFormulasNotResults(boolean formulasNotResults) {
_formulasNotResults = formulasNotResults;
}
/** /**
* Retreives the text contents of the file * Would control the inclusion of cell comments from the document,
*/ * if we supported it
public String getText() { */
String text = null; public void setIncludeCellComments(boolean includeComments) {
try { throw new IllegalStateException("Comment extraction not supported in streaming mode, please use ExcelExtractor");
TextListener tl = triggerExtraction(); }
text = tl._text.toString(); /**
if(! text.endsWith("\n")) { * Would control the inclusion of headers and footers from the document,
text = text + "\n"; * if we supported it
} */
} catch(IOException e) { public void setIncludeHeadersFooters(boolean includeHeadersFooters) {
throw new RuntimeException(e); throw new IllegalStateException("Header/Footer extraction not supported in streaming mode, please use ExcelExtractor");
} }
return text;
}
private TextListener triggerExtraction() throws IOException { /**
TextListener tl = new TextListener(); * Should sheet names be included? Default is true
FormatTrackingHSSFListener ft = new FormatTrackingHSSFListener(tl); */
tl._ft = ft; public void setIncludeSheetNames(boolean includeSheetNames) {
_includeSheetNames = includeSheetNames;
}
/**
* Should we return the formula itself, and not
* the result it produces? Default is false
*/
public void setFormulasNotResults(boolean formulasNotResults) {
_formulasNotResults = formulasNotResults;
}
// Register and process
HSSFEventFactory factory = new HSSFEventFactory();
HSSFRequest request = new HSSFRequest();
request.addListenerForAllRecords(ft);
factory.processWorkbookEvents(request, _dir); /**
* Retreives the text contents of the file
*/
public String getText() {
String text = null;
try {
TextListener tl = triggerExtraction();
return tl; text = tl._text.toString();
} if(! text.endsWith("\n")) {
text = text + "\n";
}
} catch(IOException e) {
throw new RuntimeException(e);
}
private class TextListener implements HSSFListener { return text;
FormatTrackingHSSFListener _ft; }
private SSTRecord sstRecord;
private final List<String> sheetNames; private TextListener triggerExtraction() throws IOException {
final StringBuffer _text = new StringBuffer(); TextListener tl = new TextListener();
private int sheetNum = -1; FormatTrackingHSSFListener ft = new FormatTrackingHSSFListener(tl);
private int rowNum; tl._ft = ft;
private boolean outputNextStringValue = false; // Register and process
private int nextRow = -1; HSSFEventFactory factory = new HSSFEventFactory();
HSSFRequest request = new HSSFRequest();
request.addListenerForAllRecords(ft);
public TextListener() { factory.processWorkbookEvents(request, _dir);
sheetNames = new ArrayList<String>();
}
public void processRecord(Record record) {
String thisText = null;
int thisRow = -1;
switch(record.getSid()) { return tl;
case BoundSheetRecord.sid: }
BoundSheetRecord sr = (BoundSheetRecord)record;
sheetNames.add(sr.getSheetname());
break;
case BOFRecord.sid:
BOFRecord bof = (BOFRecord)record;
if(bof.getType() == BOFRecord.TYPE_WORKSHEET) {
sheetNum++;
rowNum = -1;
if(_includeSheetNames) { private class TextListener implements HSSFListener {
if(_text.length() > 0) _text.append("\n"); FormatTrackingHSSFListener _ft;
_text.append(sheetNames.get(sheetNum)); private SSTRecord sstRecord;
}
}
break;
case SSTRecord.sid:
sstRecord = (SSTRecord)record;
break;
case FormulaRecord.sid: private final List<String> sheetNames;
FormulaRecord frec = (FormulaRecord) record; final StringBuffer _text = new StringBuffer();
thisRow = frec.getRow(); private int sheetNum = -1;
private int rowNum;
if(_formulasNotResults) { private boolean outputNextStringValue = false;
thisText = HSSFFormulaParser.toFormulaString((HSSFWorkbook)null, frec.getParsedExpression()); private int nextRow = -1;
} else {
if(frec.hasCachedResultString()) {
// Formula result is a string
// This is stored in the next record
outputNextStringValue = true;
nextRow = frec.getRow();
} else {
thisText = _ft.formatNumberDateCell(frec);
}
}
break;
case StringRecord.sid:
if(outputNextStringValue) {
// String for formula
StringRecord srec = (StringRecord)record;
thisText = srec.getString();
thisRow = nextRow;
outputNextStringValue = false;
}
break;
case LabelRecord.sid:
LabelRecord lrec = (LabelRecord) record;
thisRow = lrec.getRow();
thisText = lrec.getValue();
break;
case LabelSSTRecord.sid:
LabelSSTRecord lsrec = (LabelSSTRecord) record;
thisRow = lsrec.getRow();
if(sstRecord == null) {
throw new IllegalStateException("No SST record found");
}
thisText = sstRecord.getString(lsrec.getSSTIndex()).toString();
break;
case NoteRecord.sid:
NoteRecord nrec = (NoteRecord) record;
thisRow = nrec.getRow();
// TODO: Find object to match nrec.getShapeId()
break;
case NumberRecord.sid:
NumberRecord numrec = (NumberRecord) record;
thisRow = numrec.getRow();
thisText = _ft.formatNumberDateCell(numrec);
break;
default:
break;
}
if(thisText != null) { public TextListener() {
if(thisRow != rowNum) { sheetNames = new ArrayList<String>();
rowNum = thisRow; }
if(_text.length() > 0) public void processRecord(Record record) {
_text.append("\n"); String thisText = null;
} else { int thisRow = -1;
_text.append("\t");
} switch(record.getSid()) {
_text.append(thisText); case BoundSheetRecord.sid:
} BoundSheetRecord sr = (BoundSheetRecord)record;
} sheetNames.add(sr.getSheetname());
} break;
case BOFRecord.sid:
BOFRecord bof = (BOFRecord)record;
if(bof.getType() == BOFRecord.TYPE_WORKSHEET) {
sheetNum++;
rowNum = -1;
if(_includeSheetNames) {
if(_text.length() > 0) _text.append("\n");
_text.append(sheetNames.get(sheetNum));
}
}
break;
case SSTRecord.sid:
sstRecord = (SSTRecord)record;
break;
case FormulaRecord.sid:
FormulaRecord frec = (FormulaRecord) record;
thisRow = frec.getRow();
if(_formulasNotResults) {
thisText = HSSFFormulaParser.toFormulaString((HSSFWorkbook)null, frec.getParsedExpression());
} else {
if(frec.hasCachedResultString()) {
// Formula result is a string
// This is stored in the next record
outputNextStringValue = true;
nextRow = frec.getRow();
} else {
thisText = _ft.formatNumberDateCell(frec);
}
}
break;
case StringRecord.sid:
if(outputNextStringValue) {
// String for formula
StringRecord srec = (StringRecord)record;
thisText = srec.getString();
thisRow = nextRow;
outputNextStringValue = false;
}
break;
case LabelRecord.sid:
LabelRecord lrec = (LabelRecord) record;
thisRow = lrec.getRow();
thisText = lrec.getValue();
break;
case LabelSSTRecord.sid:
LabelSSTRecord lsrec = (LabelSSTRecord) record;
thisRow = lsrec.getRow();
if(sstRecord == null) {
throw new IllegalStateException("No SST record found");
}
thisText = sstRecord.getString(lsrec.getSSTIndex()).toString();
break;
case NoteRecord.sid:
NoteRecord nrec = (NoteRecord) record;
thisRow = nrec.getRow();
// TODO: Find object to match nrec.getShapeId()
break;
case NumberRecord.sid:
NumberRecord numrec = (NumberRecord) record;
thisRow = numrec.getRow();
thisText = _ft.formatNumberDateCell(numrec);
break;
default:
break;
}
if(thisText != null) {
if(thisRow != rowNum) {
rowNum = thisRow;
if(_text.length() > 0)
_text.append("\n");
} else {
_text.append("\t");
}
_text.append(thisText);
}
}
}
} }

View File

@ -21,30 +21,30 @@ package org.apache.poi.ss.extractor;
* HSSF and XSSF * HSSF and XSSF
*/ */
public interface ExcelExtractor { public interface ExcelExtractor {
/** /**
* Should sheet names be included? Default is true * Should sheet names be included? Default is true
*/ */
public void setIncludeSheetNames(boolean includeSheetNames); public void setIncludeSheetNames(boolean includeSheetNames);
/** /**
* Should we return the formula itself, and not * Should we return the formula itself, and not
* the result it produces? Default is false * the result it produces? Default is false
*/ */
public void setFormulasNotResults(boolean formulasNotResults); public void setFormulasNotResults(boolean formulasNotResults);
/** /**
* Should headers and footers be included in the output? * Should headers and footers be included in the output?
* Default is true * Default is true
*/ */
public void setIncludeHeadersFooters(boolean includeHeadersFooters); public void setIncludeHeadersFooters(boolean includeHeadersFooters);
/** /**
* Should cell comments be included? Default is false * Should cell comments be included? Default is false
*/ */
public void setIncludeCellComments(boolean includeCellComments); public void setIncludeCellComments(boolean includeCellComments);
/** /**
* Retreives the text contents of the file * Retreives the text contents of the file
*/ */
public String getText(); public String getText();
} }