0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ウィンドウのスクショ → EXCEL貼り付け 

Posted at

#目的
ウィンドウのスクショ → EXCEL貼り付け 
借り物多数

pip install pywin32

#exe化
pyinstaller XXX.py --onefile

#RuntimeError: maximum recursion depth exceeded while calling a Python object
pip uninstall openpyxl
pip install openpyxl==2.3.5
で対処

ウィンドウのスクショ.py
import datetime
import ctypes
from ctypes import sizeof
from ctypes.wintypes import RECT

import win32gui
from PIL import ImageGrab
import keyboard
import mouse

import csv


print('撮りたいウィンドウをクリック')
handle = None
text = ''


#list to csv出力
def export_list_csv(export_list, csv_dir):
    try:
        with open(csv_dir, "w") as f:
            writer = csv.writer(f, lineterminator='\n')

            if isinstance(export_list[0], list): #多次元の場合
                writer.writerows(export_list)

            else:
                writer.writerow(export_list)
    except:
        print("エラー発生")
        pass




def mouse_callback():
    global handle
    global text
    handle = win32gui.GetForegroundWindow()
    text = win32gui.GetWindowText(handle)
mouse.on_click(mouse_callback)

while not text:
    mouse.wait(button='left', target_types=('up',))
print('このウィンドウを撮る: ' + text)
print('違うなら再起動')


rect = win32gui.GetWindowRect(handle)




memory_box = []

def key_callback():
    grabed_image = ImageGrab.grab()
    croped_image = grabed_image.crop(rect)
    name = datetime.datetime.now().strftime('%Y-%m-%d-%H%M%S')
    filename = name + '.jpg'
    memory_box.append(filename)
    croped_image.save(filename)

    
keyboard.add_hotkey('print screen', key_callback,
                    suppress=False)

print('escキーで終了')
keyboard.wait('esc')
export_list_csv(memory_box,"memory.txt")
EXCEL貼り付け.py
import openpyxl
from PIL import Image
import csv


f = open("memory.txt")
data3 = f.read()
f.close()
lines3 = data3.replace('\n','').split(',')
memory_box = [x for x in lines3 if x]

print(memory_box)




wb = openpyxl.Workbook()
ws = wb.worksheets[0]

cell_number = 0
for i in range(len(memory_box)):

    im = Image.open('{}'.format(memory_box[i]))
    w = im.width
    h = im.height
    
    img = openpyxl.drawing.image.Image('{}'.format(memory_box[i]))
    if i == 0:
        ws.add_image( img, "A1") 
        cell_number = int( + h // 13.5)
    else:
        print(cell_number)
        ws.add_image( img, "A{}".format(int(cell_number)))
        cell_number = int(h // 13.5 + cell_number)
        
        
wb.save('result.xlsx')
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?