excelize icon indicating copy to clipboard operation
excelize copied to clipboard

Can support xls?

Open CodyGuo opened this issue 8 years ago • 14 comments

CodyGuo avatar Apr 21 '17 02:04 CodyGuo

@CodyGuo Thanks for your issue. The legacy XLS use Object Linking and Embedding (OLE) format, it's completely different with OOXML and can't be supported by the same code. To support this feature maybe needs to evaluate.

xuri avatar Apr 21 '17 03:04 xuri

@xuri Thank you, waiting for your good news.

CodyGuo avatar Apr 21 '17 03:04 CodyGuo

see https://github.com/extrame/xls

lunny avatar May 05 '18 01:05 lunny

@xuri The xls spec if pretty heavy duty and entirely different from reading xlsx. I think it would be reasonable to say we won't support the legacy xls format and close this and the related issues.

mlh758 avatar Aug 01 '19 17:08 mlh758

a conclusions yet?

stardustliu avatar Oct 06 '20 04:10 stardustliu

@xuri Any update yet?

asadrajput2 avatar Dec 15 '21 20:12 asadrajput2

Any update on this topic? I really need to read xls file instead, due to business format usage.

KiddoV avatar Aug 05 '22 19:08 KiddoV

see https://github.com/extrame/xls

Thank you!!!

zepyrshut avatar Jan 03 '23 16:01 zepyrshut

So we have to use a totally different library for xls? Hmm.. 🤔

KiddoV avatar Jan 03 '23 19:01 KiddoV

So we have to use a totally different library for xls? Hmm.. 🤔

It seems that you have to use a different library. The other one is easy to use. If you are going to use it, consider that it has a incorrect master branch tagging and you will have to go get github.com/extrame/xls/xls@4a6cf263071b975a90abf74ca3e804b48243be28

zepyrshut avatar Jan 03 '23 19:01 zepyrshut

The github.com/extrame/xls lib is too old now and has a lot of bugs. The biggest/critical bug I think is https://github.com/extrame/xls/issues/56 that, I don't think will get fixed soon.

If this lib is not support all functionalities for XLS, maybe make a conversion function somehow to convert it to XLSX so we can use this lib in peace? :)

KiddoV avatar Jul 19 '23 13:07 KiddoV

xlsx was introduced with Microsoft office 2007 and can be read with zip + xml parsers. It supports far more rows and allows for compression.

xls is a binary format, is limited to ~65k rows, and parsing it requires an entirely separate set of tools: https://interoperability.blob.core.windows.net/files/MS-XLS/%5bMS-XLS%5d.pdf

I'd really like to know, why are you using xls instead of xlsx in 2023? Is it macro support?

mlh758 avatar Jul 19 '23 13:07 mlh758

I'd really like to know, why are you using xls instead of xlsx in 2023? Is it macro support?

Same on this issue's comment here: https://github.com/qax-os/excelize/issues/341#issue-403488280 That's because my company is still using the XLS format as a default instead. Sadly! :(

KiddoV avatar Jul 19 '23 14:07 KiddoV

I really don't see this getting added to the library due to the complexity involved. Like I said, it's not a similar implementation at all.

Java has Apache POI: https://poi.apache.org/ which is probably your most complete, free option.

There's a go wrapper for libxls: https://github.com/godzie44/go-xls

Over on the C# side if you have Windows there are some free libraries that support interop to office and can do conversion. If you're not on Windows (and that's unlikely for your server, and probably a risk to install there anyway) there are some paid libraries.

There's also a Python library: https://pypi.org/project/xlrd/

mlh758 avatar Jul 19 '23 14:07 mlh758