LogIn E-mail
¼³°èÀ̾߱â
openpyxl
# 54 JMJS    24.2.22 12:40

import warnings
import openpyxl as op
from   openpyxl.utils import column_index_from_string as str2idx

with warnings.catch_warnings():
     warnings.filterwarnings("ignore",category=UserWarning)
     wb = op.load_workbook('2023_A-puzl99_schedule_240214.xlsm',data_only=True)
     ws = wb['Sheet2']

fo  = open('pzl99a.txt','w')

def get_row (ws,rnum,A,Z):
    row = list(ws[A+str(rnum):Z+str(rnum)][0])
    for i,cell in enumerate(row):
        row[i]= cell.value if cell.value else ''
    return row

for rnum in range(ws.min_row,ws.max_row+1):

    prefix,name,postfix,trimstr,addstr,substr1,substr2=get_row(ws,rnum,'G','M')
    offset,bits,rw,desch,defaultval=get_row(ws,rnum,'N','R')

    if len(name)==0: continue

#----------------------------------------------------#
import warnings
import openpyxl as op

with warnings.catch_warnings():
    warnings.filterwarnings("ignore",category=UserWarning)
    #wb = op.load_workbook('io_mux_table.xlsx',data_only=True,read_only=False,keep_vba=True)
    #sheet = wb['io_mux']
    sheet = op.load_workbook('io_mux_table.xlsx')['io_mux']
    #sheet = op.load_workbook('io_mux_table.xlsx',read_only=True,data_only=True,keep_vba=True)['io_mux']

output_list = []
output_list = []
iomux_file  = open('output_iomux_b.txt',"w")

mod0 =''
i_key=[]
i_num={}
for col_num in range(50):
    mod=str(sheet.cell(row=3,column=col_num+3).value)+":"
    if mod=='None:': mod=mod0
    else: mod0=mod

    val=mod+str(sheet.cell(row=5,column=col_num+3).value.split("(")[0])
    i_key.append(val)
    i_num[val]=col_num

for i in range(6,200):
    i_list = []
    for col_num in range(50):
        val=sheet.cell(row=i, column=col_num + 3).value
        i_list.append(str(val) if val else None)


#------------------------------------------------------------------#
1. Write to Excel
#------------------------------------------------------------------#
        from openpyxl import Workbook

        wb = Workbook()
        ws = wb.create_sheet('Sheet1')
        ws = wb.active
        ws['A1'] = '23'
        ws.append([1,2,3])
        ws.cell(3, 3, 51470)
        ws.cell(5, 5, '5Çà5¿­')
        wb.save("C:/tmp/¼ýÀÚ.xlsx")

#------------------------------------------------------------------#
2. Read from Excel
#------------------------------------------------------------------#
        from openpyxl import load_workbook

        wb = load_workbook("C:/tmp/output.xlsx", data_only=True)
        ws = wb['Sheet1']
        ws2= load_workbook("C:/tmp/output.xlsx", data_only=True)['Sheet2']

        print(ws['B2'].value)
        print(ws.cell(3, 2).value)

        get_cells = ws['B3' : 'B6']
        for row in get_cells:
            for cell in row:
                print(cell.value)

        for row in ws.rows:
            print(row)

        for column in ws.columns:
            print(column)

        all_values = []
        for row in ws.rows:
            row_values = []
            for cell in row:
                row_values.append(cell.value)
            all_values.append(row_values)
        print(all_values)

cell.column_letter
cell.row

dir(cell)
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '_bind_value', '_comment', '_hyperlink', '_style', '_value', 'alignment', 'base_date', 'border', 'check_error', 'check_string', 'col_idx', 'column', 'column_letter', 'comment', 'coordinate', 'data_type', 'encoding', 'fill', 'font', 'has_style', 'hyperlink', 'internal_value', 'is_date', 'number_format', 'offset', 'parent', 'pivotButton', 'protection', 'quotePrefix', 'row', 'style', 'style_id', 'value']


for row_num in range(sheet.min_row,sheet.max_row+1):
    i = str(row_num)
    if sheet['B'+i].value != 'assign' : continue


>>> from openpyxl.utils import get_column_letter, column_index_from_string
>>> get_column_letter(2)
'B'
>>> get_column_letter(27)
'AA'
>>> get_column_letter(900)
'AHP'
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> sheet = wb['Sheet1']
>>> get_column_letter(sheet.max_column)
'C'
>>> column_index_from_string('A') # Get A's number.

°Ô½Ã¹°: 61 °Ç, ÇöÀç: 1 / 1 ÂÊ
¹øÈ£ Á¦       ¸ñ ÀÛ¼ºÀÚ µî·ÏÀÏ ¹æ¹®
61  os.path.dirname(os.path.realpath(__file__))) JMJS 25.8.20 86
60  img2rgb.py PIL lambda print end prn sys.argv JMJS 24.6.18 343
59  cv2 image pixel bgr °ª ¼öÁ¤Çϱâ JMJS 24.3.1 367
58  ±ÛÀÚÇǶó¹Ìµå lpyramid.py JMJS 24.3.1 408
57  µñ¼Å³Ê¸® dictionary µñ¼Å³Ê¸® key¿Í value µÚÁý±â ... JMJS 24.3.1 346
56  bus idx2set cap JMJS 24.2.22 363
55  ÆÄÀ̽㠸®½ºÆ®¿¡¼­ ºó ¹®ÀÚ¿­ÀÎ ¿ø¼Ò Á¦°ÅÇϱâ JMJS 24.2.22 355
54  openpyxl JMJS 24.2.22 362
53  Decorators µ¥ÄÚ·¹ÀÌÅÍ JMJS 24.2.29 368
52  walrus operator := and for in list JMJS 24.2.1 356
51  pandas Çà Ãß°¡ JMJS 24.1.28 327
50  split with brackets JMJS 24.1.27 342
49  ÀÌÅÍ·¹ÀÌÅÍ Iterator JMJS 24.1.26 364
48  re regular expression JMJS 24.1.26 337
47  read_excel()ÀÇ ÁöÁ¤ °¡´ÉÇÑ ¿É¼Ç JMJS 24.1.26 352
46  pandas to_excel sheet ¿©·¯Àå excel ÆÄÀÏ ¾²±â Àбâ JMJS 24.1.28 407
45  pandas ¼¿ isna isnull notna notnull JMJS 24.1.28 381
44  tkinter tk1.py JMJS 24.1.25 405
43  pandas _append df2.py JMJS 24.1.25 382
42  ÆÇ´Ù½º pandas DataFrame, list, dictionary, ... JMJS 24.1.25 391
41  f-string JMJS 24.6.18 404
40  pandas JMJS 24.1.17 339
39  __add__ __getattr__ __getitem__ __setitem__ JMJS 24.1.24 368
38  ÆÄÀ̽㠼³Ä¡°æ·Î È®ÀÎ JMJS 23.12.4 346
37  deepcopy JMJS 23.11.24 357
36  def func(*args): JMJS 23.11.24 377
35  sys.version_info JMJS 23.11.19 393
34  argparse add_argument parse_args JMJS 24.1.17 348
33  [bpy]bone2_wr.py JMJS 23.9.23 382
32  [bpy]bm.verts depsgraph JMJS 23.9.23 358
31  [bpy]keyframe_insert JMJS 23.9.23 363
30  [bpy]key_blocks JMJS 23.9.23 367
29  def abc (a=10,b=20,c=30) JMJS 23.8.1 372
28  shape prj JMJS 23.10.29 393
27  yaml JMJS 23.11.30 404
26  getopt arg argv JMJS 23.7.26 397
25  pg.mouse.get_pressed() pg.mouse.get_pos() JMJS 22.11.20 495
24  pg.MOUSEBUTTONDOWN event.button JMJS 22.11.20 504
23  ¸ðµÎÀÇ ÆÄÀ̽ã - 20Àϸ¸¿¡¹è¿ì´Â ÇÁ·Î±×·¡¹Ö ±âÃÊ JMJS 20.1.8 544
22  python -m pip install -U pip JMJS 19.11.25 496
21  get =lambda i,m ... JMJS 19.11.13 524
20  2Â÷¿ø ¸®½ºÆ®, Æ©Çà JMJS 19.11.13 514
19  [turtle]def polygon3(n,c,d) JMJS 19.11.11 535
18  [turtle]def polygon2(n,a) JMJS 19.11.11 541
17  def factorial(n) JMJS 19.11.11 488
16  def sum_func(n) JMJS 19.11.11 497
15  def hello() fun1(a) fun2(a,b) JMJS 19.11.11 493
14  while sum JMJS 19.11.11 577
13  random calculation JMJS 19.11.11 486
12  turtle random JMJS 19.11.11 493
11  import time time.time JMJS 19.11.11 598
10  turtle begin_fill end_fill JMJS 19.11.11 488
9  if else JMJS 19.11.11 488
8  input JMJS 19.11.11 489
7  list JMJS 24.3.1 548
6  turtle triangle JMJS 19.11.11 505
5  for range JMJS 19.11.11 503
4  ¸ðµâ »ç¿ëÇϱâ JMJS 19.11.11 533
3  import ÆÄÀ̽㠸ðµâ °¡Á®´Ù ¾²±â JMJS 19.11.11 516
1  print ÁÙ¹Ù²Þ JMJS 19.11.11 558
 ^_^ 70.1.1
[1]