1. 程式人生 > >RPA學習-Python Excel 操作模塊 XlsxWriter 之插入圖片 worksheet

RPA學習-Python Excel 操作模塊 XlsxWriter 之插入圖片 worksheet

更改 post 圖片文件 map water 相對 bytesio true 最好

藝賽旗RPA全面免費下載中
點擊下載
http://www.i-search.com.cn/index.html?from=line27

在最近的項目上有遇到一個需求:需要將圖片寫到 execl 中。這裏和大家分享一下。

worksheet.insert_image()
insert_image(row, col, image[, options])
在工作表單元格中插入一張圖片。

參數:

row(int) - 單元格所在的行(索引從 0 開始計數)
col(int) - 單元格所在的列(索引從 0 開始計數)
image(string) - 圖片文件名(如有需要含路徑)
options(dict) - 可選的圖片位置,縮放,url 參數

這種方法可用於向工作表插入圖片。圖片可以是 PNG, JPEG 或者 BMP 格式的:

worksheet.insert_image(‘B2‘, ‘python.png‘)

文件路徑可與圖片文件名一起指定:

worksheet1.insert_image(‘B10‘, ‘../images/python.png‘)
worksheet2.insert_image(‘B20‘, r‘c:\images\python.png‘)
insert_image() 方法接受字典形式的可選參數來定位和縮放圖片。可用的參數和它們的默認值有:

{
‘x_offset‘: 0,
‘y_offset‘: 0,
‘x_scale‘: 1,

‘y_scale‘: 1,
‘url‘: None,
‘tip‘: None,
‘image_data‘: None,
‘positioning‘: None,
}
offset 的值是以像素為單位的:

worksheet1.insert_image(‘B2‘, ‘python.png‘, {‘x_offset‘: 15, ‘y_offset‘: 10‘})
offset 的值可以大於基礎單元格的寬度與高度。如果想將兩個及以上的圖片相對於同一單元格對齊,這有時會很有用。

x_scale 和 y_scale 參數可以用於水平及垂直的縮放圖片:

worksheet.insert_image(‘B3‘, ‘python.png‘, {‘x_scale‘: 0.5, ‘y_scale‘: 0.5})

url 參數可以為圖片添加超鏈接 /url,tip 參數為含有超鏈接的圖片提供可選的鼠標懸停時的提示信息:

worksheet.insert_image(‘B4‘, ‘python.png‘, {‘url‘: ‘http://python.org‘})

image_data 參數用於在 io.BytesIO 中添加內存中的字節流:

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

這通常用來從 URL 中添加圖片:

url = ‘http://python.org/logo.png‘
image_data = io.BytesIO(urllibs.urlopen(url).read())
worksheet.insert_image(‘B5‘, url, {‘image_data‘: image_data})
當使用 image_data 參數時文件名必須傳遞到 insert_image() 因為這是 Excel 要求的。在前面的例子中文件名是從 URL 字符串中提取的。

positioning 參數可以用來控制圖片對象的位置:

worksheet.insert_image(‘B3‘, ‘python.png‘, {‘positioning‘: 1})
postioning 有以下允許的值:

  1. 移動和調整單元格的大小

  2. 移動但不調整單元格的大小(默認)

  3. 不移動或調整單元格的大小

註意:
如果由於字體大小大於默認字體大小或者打開了文本換行而導致更改了默認行高,則圖片的縮放可能會受到影響。
如果它與插入的圖像交叉,你應該使用 set_row() 方法明確的設定行高來避免此問題。

BMP 圖片只向後兼容。由於 BMP 圖片不能壓縮,通常情況下最好避免使用 BMP 圖片。如果使用 BMP 圖片,必須是 24bit、true color、bitmap 的。

實例:向工作表插入圖片*
import xlsxwriter

創建一個新Excel文件並添加一個工作表。

workbook = xlsxwriter.Workbook(‘excel插入images.xlsx‘)
worksheet = workbook.add_worksheet()

加寬第一列使文本更清晰。

worksheet.set_column(‘A:A‘, 30)

插入一張圖片。

worksheet.write(‘A2‘, ‘向單元格插入一張圖片:‘)
worksheet.insert_image(‘B2‘, ‘1.jpg‘,{‘x_scale‘: 2, ‘y_scale‘: 2})

插入一張位偏移圖片。

worksheet.write(‘A26‘, ‘插入一張位偏移圖片:‘)
worksheet.insert_image(‘B26‘, ‘2.jpg‘, {‘x_offset‘: 5, ‘y_offset‘: 1})

插入一張縮放了的圖片。

worksheet.write(‘A50‘, ‘插入一張縮放了的圖片:‘)
worksheet.insert_image(‘B50‘, ‘3.jpg‘,{‘x_offset‘: 5, ‘y_offset‘: 1,‘x_scale‘: 0.5, ‘y_scale‘: 0.5})

workbook.close() #保存

技術分享圖片

RPA學習-Python Excel 操作模塊 XlsxWriter 之插入圖片 worksheet