1

Excel 2010を駆動するためにpython win32を使用しています。特定のセルに写真を挿入したい

import win32com.client as win32
from win32com.client import constants as constants

excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = True

wb = excel.Workbooks.Add()
ws = wb.Worksheets('Sheet1')
ws.Name = 'PicDemo' ## rename worksheet

## select the active sheet
excel.Sheets('PicDemo').Select()
ws = excel.ActiveSheet
ws.Cells(9,9).Select()

## insert a png pic into this cell
ws.Pictures().Insert(pic file path)

PCに挿入された写真を見ることができますが、友人にエクセルを送ると、写真を見ることができず、「無効なリンク」と赤い十字が表示されます。

Web を検索したところ、多くの人が Excel 2010 のこの不具合について不満を漏らしていました。依存リンクなしで写真を完全に保存したいだけです。

python win32 の回避策はありますか?

4

1 に答える 1

0

Microsoft は、Excel 2010 および 2013 の動作を変更しました。これを試してください。

xlApp = win32.Dispatch(r'Excel.Application')
xlBook = xlApp.Workbooks.Open(filename)
xlSheet = xlBook.Sheets(sheet_name)
rng = xlSheet.Range("B2:F8")
height = rng.Offset(rng.Rows.Count, 0).Top - rng.Top
width = rng.Offset(0, rng.Columns.Count).Left - rng.Left
xlSheet.Shapes.AddPicture(image_file_name, False, True, rng.Left, rng.Top, height, width)

AddPictureには、ドキュメントと共に画像を保存するオプションがあります。

高さと幅は必須です。上記のコードでは、Range を使用して画像のサイズを調整しています。

于 2015-05-01T16:27:39.967 に答える