首页 > 解决方案 > 使用 xlsx writer 将图像从 sqlite 导出到 Excel 文件

问题描述

无法使用 xlsx 编写器将图像文件从 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:stat:路径中嵌入空字符

表语法:

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

标签: pythonexcelsqlitexlsxwriter

解决方案


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

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

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

推荐阅读