使用xlsx writer将图像从sqlite导出到Excel文件

时间:2019-06-04 07:09:59

标签: python excel sqlite xlsxwriter

无法使用xlsx writer从sqlite3数据库将图像文件导出到Excel。

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:统计:在路径中嵌入空字符

表格语法:

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

1 个答案:

答案 0 :(得分:1)

XlsxWriter insert_image() API将图像文件的路径作为输入。我认为这不是SQL查询返回的内容。

XlsxWriter还支持将图像作为io.BytesIO格式的内存中字节流。请参见insert_image() docs中的image_data参数:

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