1. """
    2. Excel批量到导出图片
    3. SS
    4. """
    5. from pymysql import TIME
    6. import win32com.client
    7. import time
    8. from datetime import datetime
    9. from PIL import Image, ImageGrab
    10. import os
    11. import win32gui
    12. from win32gui import *
    13. import win32gui
    14. import win32api
    15. def open_table():
    16. xlapp = win32com.client.Dispatch("excel.Application") # Excel
    17. xlapp = win32com.client.Dispatch("ket.Application") # WPS
    18. xlapp.Visible = 1
    19. xlapp.DisplayAlerts = False
    20. ws = xlapp.ActiveSheet
    21. ws = xlapp.Worksheets('111')
    22. ws1 = xlapp.Worksheets.Add() # 添加 Sheet
    23. xlScreen, xlPrinter = 1, 2
    24. xlPicture, xlBitmap = -4147, 2
    25. for i in range(1,3):
    26. print(i)
    27. range01 = "A"+str(i)
    28. ws.Range(range01).Copy() # 复制单元格
    29. ws1.paste
    30. for aaa in ws1.Shapes:
    31. aaa.ScaleHeight( 1, 1)
    32. aaa.ScaleWidth( 1, 1)
    33. for i11 in range(10):
    34. try:
    35. print(i11)
    36. aaa.CopyPicture(xlScreen, xlBitmap)
    37. break
    38. except Exception as e:
    39. time.sleep(0.5)
    40. print(e)
    41. aaa.Delete()
    42. save_pic(str(i))
    43. clear_clipboard()
    44. def clear_clipboard():
    45. from ctypes import windll
    46. if windll.user32.OpenClipboard(None): # 打开剪切板
    47. windll.user32.EmptyClipboard() # 清空剪切板
    48. windll.user32.CloseClipboard() # 关闭剪切板
    49. def save_pic(filename):
    50. for i in range(10):
    51. try:
    52. # time.sleep(0.3)
    53. # 图片过大,打开剪贴板过快
    54. # OSError: failed to open clipboard
    55. print("获取剪贴板次数:"+str(i))
    56. im = ImageGrab.grabclipboard()
    57. break
    58. except Exception as e:
    59. time.sleep(0.5)
    60. print(e)
    61. a01 = 0
    62. print(im.size)
    63. filepath = r'C:\\Users\\ch\\Downloads\\SA8D9FS8AD90FSAD890F\\'+filename+'.png'
    64. im.save(filepath)
    65. if __name__ == '__main__':
    66. open_table()