Comments (2)
Thanks for your issue. The unencrypted workbook is a compressed file with the ZIP format, but the encrypted workbook is a CFB (OLE) file, which is different from the ZIP format. You will get that error message not only after opening an encrypted workbook without specifying the correct password but also after opening any file format that isn't supported by this library. So I think this error message is expected. Note that, you can roughly determine if a file is in a CFB format by this identifier. I'll close this issue. If you have any questions, please let me know, and you can reopen this anytime.
from excelize.
Thank you, @xuri, I add a function to judge whether it is an ole format Excel file, and tips it has encrypted must provide password to open it.
func isOleExcel(f io.ReadSeeker) bool {
oleIdentifier := []byte{0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1}
buf := make([]byte, len(oleIdentifier))
_, err := f.Read(buf)
if err != nil {
return false
}
f.Seek(0, io.SeekStart)
return bytes.Compare(buf, oleIdentifier) == 0
}
from excelize.
Related Issues (20)
- How to insert new data into an existing sheet table and preserve the previous data. HOT 1
- 为什么sheet不支持区分大小写?( Why does sheet not support case sensitivity?) HOT 3
- Generated Excel files lose content partially - Error on opening HOT 5
- Parentheses in formulas get cut out when inserting new columns or rows HOT 1
- Feature request: SetRowHeight for StreamWriter HOT 1
- Tab (\t) character cannot be displayed in the generated workbook's cell HOT 1
- condition A with style ,the unstyled condition will be applied with A's style. HOT 1
- excelize按行读取内容成字符串数组导致日期格式错误 HOT 1
- The first execution of Flush() data will be written to Excel, and SetRow() after Flush() will not take effect HOT 1
- duration has -1 second HOT 2
- Excel to PDF Page Size issue HOT 1
- After adding and saving images in Excel by excelize, the GetPictureCells method cannot read any values HOT 1
- Support insert the Kingsoft WPS Office embedded image cells via the DISPIMG formula function HOT 2
- [BUG] Get Rows function HOT 1
- Count columns and rows of the worksheets. 会提供 Max row Max col 属性吗 HOT 1
- I have 70 option datas,but can't set dropList as datavalidation HOT 1
- Remove column caused workbook corrupted HOT 1
- Font size of the header and footer doesn't work HOT 2
- sw.SetRow() Can only be called once HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from excelize.