Найти - Пользователи
Полная версия: Ubuntu. Конвертация excel в png.
Начало » Python для новичков » Ubuntu. Конвертация excel в png.
1 2
Scorp1978
Сделал на excel2img, перенес на сервер причина понятна сервак на убунту.
3 дня уже бьюсь руки опускаются
пытался asposecells, asposeimagingcloud не получается.

 import asposecells
# from asposecells import Workbook
# from asposecells import SaveFormat, ImageSaveOptions, Workbook
from aspose-cells import Workbook, SheetRender, ImageOrPrintOptions, SaveFormat
import asposeimagingcloud
# from asposeimagingcloud import Work
workbook = Workbook("/xls/15101970172_47866020081623.xlsx")
# create image options
imgOptions = ImageOrPrintOptions()
imgOptions.setSaveFormat(SaveFormat.SVG)
# load the worksheet to be rendered
sheet = workbook.getWorksheets().get(0)
# create sheet render object
sr = SheetRender(sheet, imgOptions)
# convert sheet to PNG image
for j in range(0, sr.getPageCount()):
	sr.toImage(j, "WorksheetToImage-out%s" %(j) + ".png")

может есть у кого код для примера рабочий.
(запускаю на win8, потом переношу на сервер убунту)
ZerG
лог ошибки?
Scorp1978
 from asposecells.api import Workbook, SheetRender, ImageOrPrintOptions, SaveFormat
# import asposeimagingcloud
# from asposeimagingcloud import Work
workbook = Workbook("/xls/15101970172_47866020081623.xlsx")
# create image options
imgOptions = ImageOrPrintOptions()
imgOptions.setSaveFormat(SaveFormat.SVG)
# load the worksheet to be rendered
sheet = workbook.getWorksheets().get(0)
# create sheet render object
sr = SheetRender(sheet, imgOptions)
# convert sheet to PNG image
for j in range(0, sr.getPageCount()):
	sr.toImage(j, "WorksheetToImage-out%s" %(j) + ".png")

Traceback (most recent call last):
File “C:\telegram_bot\AuthUtils.py”, line 5, in <module>
from asposecells.api import Workbook, SheetRender, ImageOrPrintOptions, SaveFormat
File “C:\telegram_bot\venv\Lib\site-packages\asposecells\api.py”, line 10, in <module>
from com.aspose.cells.wrapper import StreamBuffer
File “C:\telegram_bot\venv\Lib\site-packages\jpype\imports.py”, line 155, in find_spec
raise ImportError(“Attempt to create Java package ‘%s’ without jvm” % name)
ImportError: Attempt to create Java package ‘com’ without jvm
ZerG
Не совсем понял ошибку!
У вас есть код который работает на винде - вы его переносите на линукс
На линуксе не работает
Зачем мне ошибка с винды с диском С?

Раз вы переносите проект на линукс то переносить виртуальное окружение нельзя с винды
Вам нужно перенести файлы проекта *.py
на линуксе создать виртуальное окржуение
python3 -m venv venv
далее установить нужные пакеты например на винде делаетет
pip freeze > requirements.txt

а уже на линукксе
pip install -r requirements.txt
и тогда уже запускать (все это внутри вирткального окружения разумеется)
Scorp1978
я на винде тоже не могу запустить.
Вот простейший код (https://products.aspose.com/cells/ru/python-java/conversion/excel-to-jpg/)
 import jpype
import asposecells
jpype.startJVM()
from asposecells.api import Workbook
workbook = Workbook("/xls/15101970172_47866020081623.xlsx")
workbook.save("Output.jpg")
jpype.shutdownJVM()

Traceback (most recent call last):
File “C:\telegram_bot\AuthUtils.py”, line 23, in <module>
jpype.startJVM()
File “C:\telegram_bot\venv\Lib\site-packages\jpype\_core.py”, line 219, in startJVM
jvmpath = getDefaultJVMPath()
^^^^^^^^^^^^^^^^^^^
File “C:\telegram_bot\venv\Lib\site-packages\jpype\_jvmfinder.py”, line 74, in getDefaultJVMPath
return finder.get_jvm_path()
^^^^^^^^^^^^^^^^^^^^^
File “C:\telegram_bot\venv\Lib\site-packages\jpype\_jvmfinder.py”, line 212, in get_jvm_path
raise JVMNotFoundException(“No JVM shared library file ({0}) ”
jpype._jvmfinder.JVMNotFoundException: No JVM shared library file (jvm.dll) found. Try setting up the JAVA_HOME environment variable properly.
Scorp1978
может есть сервисы бесплатные типа
https://www.convertapi.com/xls-to-jpg
Scorp1978
на винде я запускал excel2img, на убунту excel2img работать не будет (pip install excel2img выдает ошибку), начал разбираться с asposecells, вот и пока даже на винде запустить asposecells не получается.
ZerG
aaaa
ну попробуйте что то типа

pip install openpyxl Pillow

 from openpyxl import load_workbook
from PIL import Image
def excel_to_png(excel_file, sheet_name, output_image):
    # Load the Excel workbook
    workbook = load_workbook(excel_file, read_only=True, data_only=True)
    # Select the desired sheet
    sheet = workbook[sheet_name]
    # Create an image from the sheet
    img = Image.new('RGB', (600, 800), color='white')  # Adjust dimensions as needed
    img.save(output_image)
    # Save the sheet as an image
    sheet.sheet_view.showGridLines = False
    img = Image.open(output_image)
    img = Image.fromarray(sheet._images[0].image)
    img.save(output_image)
# Example usage
excel_to_png('your_file.xlsx', 'Sheet1', 'excel_as_image.png')
Scorp1978
Зерги, вот

Traceback (most recent call last):
File “C:\telegram_bot\AuthUtils.py”, line 18, in <module>
excel_to_png('xls/15101970172_47866020081623.xlsx', ‘Sheet1’, ‘excel_as_image.png’)
File “C:\telegram_bot\AuthUtils.py”, line 13, in excel_to_png
sheet.sheet_view.showGridLines = False
^^^^^^^^^^^^^^^^
AttributeError: ‘ReadOnlyWorksheet’ object has no attribute ‘sheet_view’
ZerG
Ты же под линукс спрашиваешь - под ним и запускай
Нафига мне ошибки винды - может у тя прав нехватает
ПОпробуй так что ли

 from openpyxl import load_workbook
from openpyxl.drawing.image import Image
def excel_to_png(excel_file, sheet_name, output_image):
    # Load the Excel workbook
    workbook = load_workbook(excel_file, read_only=True, data_only=True)
    # Select the desired sheet
    sheet = workbook[sheet_name]
    # Create an image from the sheet
    img = Image(sheet._images[0].image)
    img.save(output_image)
# Example usage
excel_to_png('your_file.xlsx', 'Sheet1', 'excel_as_image.png')
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB