2016-03-30 14 views
0
NPOIFSFileSystem fs = new NPOIFSFileSystem(new File("C://Users//RK5026051//Downloads//500_Lanes.xls")); 
     EncryptionInfo info = new EncryptionInfo(fs); 
     Decryptor d = Decryptor.getInstance(info); 
     if (d.verifyPassword("manh.com")) { 
      HSSFWorkbook wb = new HSSFWorkbook(d.getDataStream(fs)); 
     } else { 
      System.out.println("wrong password"); 
     } 
     // TODO Auto-generated method stub 
    } 

Error--java'yı kullanarak parola korumalı excel sayfasını satır ve sütununu güncelleyebilir miyiz?

Exception in thread "main" java.io.FileNotFoundException: no such entry: "EncryptionInfo", had: [_VBA_PROJECT_CUR, SummaryInformation, DocumentSummaryInformation, Workbook] 
    at org.apache.poi.poifs.filesystem.DirectoryNode.getEntry(DirectoryNode.java:370) 
    at org.apache.poi.poifs.filesystem.DirectoryNode.createDocumentInputStream(DirectoryNode.java:177) 
    at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:51) 
    at org.apache.poi.poifs.crypt.EncryptionInfo.<init>(EncryptionInfo.java:47) 
    at auto.excel.main(excel.java:15) 

Ben selenyum kullanarak bir uygulamadan bir dosya indirirken ediyorum, ben excel dosyasında bazı alanları güncelleştirmek ve yeniden yüklemeniz gerekir. **

biliyorum indirdiğim excel dosyasının şifresi, Şimdi belirli satırları ve sütunları güncelleştirmesi için bir kod yazmam gerekiyor, Ama bu excel dosyasında herhangi bir işlem yapamıyorum ve parola korumalı olduğundan sanırım.

Overflow yığınında bazı yanıtları denedim ama çalışmaz. Ayrıca bu konuda internette pek çok materyal almadım. İşte ben

NPOIFSFileSystem fs = new NPOIFSFileSystem(new File("D://protectedfile.xlsx")); 
EncryptionInfo info = new EncryptionInfo(fs); 
Decryptor d = Decryptor.getInstance(info); 
if (d.verifyPassword("password")) { 
    XSSFWorkbook wb = new XSSFWorkbook(d.getDataStream(fs)); 
} else { 
    // Password is wrong 
} 
+0

olası yineleme: - http://stackoverflow.com/questions/25994772/read-password-protected-excel-file-xlsx-using-java –

+0

sizden bahsetmiyorsunuz Kodunuz başarısız mı? Yani, "doğrulamakPassword" bloğu yürütülür mu yoksa "başka" mı? –

+0

Açmaya çalıştığınız dosya ne tür? Bir .xls veya bir .xlsx? (Onlar farklı!) – Gagravarr

cevap

1

Öncelikle çalışan bir örnek kod, bunu bugünlerde son moda değil biliyorum ama really really read the Apache POI documentation on reading protected files gerekir. Bundan böyle, şaşırtıcı bir şekilde çalışmayacak olan korumalı bir XLS dosyası için XLSX şifre çözme yöntemini kullanmaya çalıştığınızı göreceksiniz! , Salt okunur modda çalışma kitabını açılacak

Workbook wb = WorkbookFactory.create(new File("protected.xls"), "password", true); 

: WorkbookFactory can take the password of your spreadsheet Yani

açarken, sadece çok basit için kodunuzu değiştirmeniz -

Ancak gitmek için daha kolay bir yolu var verilen parolayı okumak ve sizin için otomatik olarak gereken türün tanımlanması

İlgili konular