Экспорт изображений из sqlite в файл Excel с помощью средства записи xlsx - PullRequest
0 голосов
/ 04 июня 2019

Невозможно экспортировать файл изображения в Excel из базы данных sqlite3 с помощью модуля записи xlsx.

import sqlite3
from xlsxwriter.workbook import Workbook

workbook = Workbook('ExportFile.xlsx')
conn=sqlite3.connect('demo.db')
cursor = conn.cursor()

cursor.execute("SELECT * FROM UsersImage")
data = cursor.fetchall()
for row in data:
    zero = row[0]
    one = row[1]
    two = row[2]
worksheet = workbook.add_worksheet('Test Sheet')
worksheet.write('A1', zero)
worksheet.insert_image('B1', one, {'x_scale': 0.5, 'y_scale': 0.5})
worksheet.insert_image('C1', row, {'x_scale': 0.5, 'y_scale': 0.5})
workbook.close()

Ожидается, что файлы изображений из sql Db будут отображаться в листе Excel.Текстовые значения отображаются правильно.

ValueError: stat: встроенный нулевой символ в пути

Синтаксис таблицы:

CREATE TABLE `UsersImage` (
    `UserID`    integer,
    `UserImage` BLOB NOT NULL,
    `UserCar`   BLOB NOT NULL,
    PRIMARY KEY(`UserID`)
);

1 Ответ

1 голос
/ 04 июня 2019

API XlsxWriter insert_image() принимает путь к файлу изображения в качестве входного.Я предполагаю, что это не то, что возвращает SQL-запрос.

XlsxWriter также поддерживает изображения в виде потока байтов в памяти в формате io.BytesIO.См. Параметр image_data в insert_image() документах :

worksheet.insert_image('B5', 'python.png', {'image_data': image_data})
...