有没有办法使用xssf事件模型api在.xlsx文件中获取所有嵌入对象?
Usermodel的方法是workbook.getallembedds ...同样在eventmodel中有什么内容吗?
这是usermodel中的一个示例。我想使用eventusermodel.Kindly帮助实现相同的功能。
for (PackagePart pPart : workbook.getAllEmbedds()) {
String contentType = pPart.getContentType();
if (contentType.equals(------)
而不是xssfworkbook(在usermodel中),在eventmodel代码中我有一个类型为OPCPackage的containerObject。
@Gagravarr:谢谢你的回复。我尝试使用你建议的方法...但我无法获取嵌入式excel的内容。请你帮我找出我出错的地方。这是代码的一部分:
ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(container);
XSSFReader xssfReader = new XSSFReader(container);
XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator)xssfReader.getSheetsData();
for(PackageRelationship rel : iter.getSheetPart().getRelationshipsByType(XSSFRelation.OLEEMBEDDINGS.getRelation()))
embedds.add(getTargetPart(rel));
for (PackagePart pPart :getAllEmbedds()) {
String contentType = pPart.getContentType();
// Excel Workbook - OpenXML file format
if (contentType.equals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml")) {
OPCPackage excelObject = OPCPackage.open(pPart.getInputStream());
`
答案 0 :(得分:1)
你最好的选择可能只是枚举所有的包装零件,找到那些你感兴趣的零件
或者,识别附加到给定工作表的嵌入式零件的逻辑非常简单:
List<PackagePart> embedds = new LinkedList<PackagePart>();
// Get the embeddings for the workbook
for(PackageRelationship rel : sheet.getSheetPart().getRelationshipsByType(XSSFRelation.OLEEMBEDDINGS.getRelation()))
embedds.add(getTargetPart(rel));
for(PackageRelationship rel : sheet.getSheetPart().getRelationshipsByType(XSSFRelation.PACKEMBEDDINGS.getRelation()))
embedds.add(getTargetPart(rel));
return embedds;
答案 1 :(得分:1)
最后我用的就是这个!
ArrayList<PackagePart> parts = container.getParts();
for (PackagePart pPart :parts) {
String contentType = pPart.getContentType();
if (contentType.equals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) {