first commit
This commit is contained in:
commit
4d332ef662
27586 changed files with 3281783 additions and 0 deletions
83
rus/WEB-INF/lib/jxl_src/jxl/demo/PropertySetsReader.java
Normal file
83
rus/WEB-INF/lib/jxl_src/jxl/demo/PropertySetsReader.java
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
package jxl.demo;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import jxl.WorkbookSettings;
|
||||
import jxl.biff.BaseCompoundFile;
|
||||
import jxl.read.biff.BiffException;
|
||||
import jxl.read.biff.CompoundFile;
|
||||
|
||||
class PropertySetsReader {
|
||||
private BufferedWriter writer;
|
||||
|
||||
private CompoundFile compoundFile;
|
||||
|
||||
public PropertySetsReader(File file, String propertySet, OutputStream os) throws IOException, BiffException {
|
||||
this.writer = new BufferedWriter(new OutputStreamWriter(os));
|
||||
FileInputStream fis = new FileInputStream(file);
|
||||
int initialFileSize = 1048576;
|
||||
int arrayGrowSize = 1048576;
|
||||
byte[] d = new byte[initialFileSize];
|
||||
int bytesRead = fis.read(d);
|
||||
int pos = bytesRead;
|
||||
while (bytesRead != -1) {
|
||||
if (pos >= d.length) {
|
||||
byte[] newArray = new byte[d.length + arrayGrowSize];
|
||||
System.arraycopy(d, 0, newArray, 0, d.length);
|
||||
d = newArray;
|
||||
}
|
||||
bytesRead = fis.read(d, pos, d.length - pos);
|
||||
pos += bytesRead;
|
||||
}
|
||||
bytesRead = pos + 1;
|
||||
this.compoundFile = new CompoundFile(d, new WorkbookSettings());
|
||||
fis.close();
|
||||
if (propertySet == null) {
|
||||
displaySets();
|
||||
} else {
|
||||
displayPropertySet(propertySet, os);
|
||||
}
|
||||
}
|
||||
|
||||
void displaySets() throws IOException {
|
||||
int numSets = this.compoundFile.getNumberOfPropertySets();
|
||||
for (int i = 0; i < numSets; i++) {
|
||||
BaseCompoundFile.PropertyStorage ps = this.compoundFile.getPropertySet(i);
|
||||
this.writer.write(Integer.toString(i));
|
||||
this.writer.write(") ");
|
||||
this.writer.write(ps.name);
|
||||
this.writer.write("(type ");
|
||||
this.writer.write(Integer.toString(ps.type));
|
||||
this.writer.write(" size ");
|
||||
this.writer.write(Integer.toString(ps.size));
|
||||
this.writer.write(" prev ");
|
||||
this.writer.write(Integer.toString(ps.previous));
|
||||
this.writer.write(" next ");
|
||||
this.writer.write(Integer.toString(ps.next));
|
||||
this.writer.write(" child ");
|
||||
this.writer.write(Integer.toString(ps.child));
|
||||
this.writer.write(" start block ");
|
||||
this.writer.write(Integer.toString(ps.startBlock));
|
||||
this.writer.write(")");
|
||||
this.writer.newLine();
|
||||
}
|
||||
this.writer.flush();
|
||||
this.writer.close();
|
||||
}
|
||||
|
||||
void displayPropertySet(String ps, OutputStream os) throws IOException, BiffException {
|
||||
if (ps.equalsIgnoreCase("SummaryInformation")) {
|
||||
ps = "\005SummaryInformation";
|
||||
} else if (ps.equalsIgnoreCase("DocumentSummaryInformation")) {
|
||||
ps = "\005DocumentSummaryInformation";
|
||||
} else if (ps.equalsIgnoreCase("CompObj")) {
|
||||
ps = "\001CompObj";
|
||||
}
|
||||
byte[] stream = this.compoundFile.getStream(ps);
|
||||
os.write(stream);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue