pyexcel / pyexcel-xlsx

A wrapper library to read, manipulate and write data in xlsx and xlsm format using openpyxl
Other
114 stars 31 forks source link

Issues with Pyinstaller #39

Closed ghost closed 2 years ago

ghost commented 4 years ago

I am having issues getting PyInstaller to load in the plugins for pyexcel (specifically pyexcel-xlsx). I have looked at both pyexcel and pyexcel-io pages that explain what I need to add as the --hidden-import. PyInstaller does successfully create an executable, but no matter what I put as my --hidden-import I end up with the error pyexcel_io.exceptions.SupportingPluginAvailableButNotInstalled: Please install one of these plugins for read data in 'xlsx': pyexcel-xls,pyexcel-xlsx. I found a question asking about this same problem on stackoverflow and they answered their own question by just importing the plugins directly. This worked for me as well and I just added import pyexcel_xlsx to my python file. I was wondering if their is a bug here as I noticed this has been asked before across the repositories, but people seemed to have figured it out, so maybe I am missing something. Thanks for the help.

Feynstein commented 4 years ago

Let me help you my good sir. As a python user myself I heavily recommend exporting your files to CSV if you can. Its easier to work with. https://support.office.com/en-us/article/import-or-export-text-txt-or-csv-files-5250ac4c-663c-47ce-937b-339e391393ba

chfw commented 4 years ago

Referencing https://github.com/pyexcel/pyexcel-xlsx/issues/19, @kerneltravel has successfully packaged pyexcel-xlsx and open sourced his project here: https://github.com/kerneltravel/xlsx2csv_gui

Could you please check it out?

chfw commented 4 years ago

from pyexcel's perspective, xlsx could win csv over the size because xlsx(and ods) are effective a zip of various xml files (but pyexcel support csvz, zipped csv files). however, csv file can be processed line by line whereas xlsx needs all in memory first. pyexcel-xlsxr reduces the memory footprint but to decompress a zip file, I do not think there is a way not to load all in memory.