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 103
60  img2rgb.py PIL lambda print end prn sys.argv JMJS 24.6.18 374
59  cv2 image pixel bgr °ª ¼öÁ¤Çϱâ JMJS 24.3.1 399
58  ±ÛÀÚÇǶó¹Ìµå lpyramid.py JMJS 24.3.1 442
57  µñ¼Å³Ê¸® dictionary µñ¼Å³Ê¸® key¿Í value µÚÁý±â ... JMJS 24.3.1 364
56  bus idx2set cap JMJS 24.2.22 404
55  ÆÄÀ̽㠸®½ºÆ®¿¡¼­ ºó ¹®ÀÚ¿­ÀÎ ¿ø¼Ò Á¦°ÅÇϱâ JMJS 24.2.22 381
54  openpyxl JMJS 24.2.22 385
53  Decorators µ¥ÄÚ·¹ÀÌÅÍ JMJS 24.2.29 402
52  walrus operator := and for in list JMJS 24.2.1 380
51  pandas Çà Ãß°¡ JMJS 24.1.28 345
50  split with brackets JMJS 24.1.27 361
49  ÀÌÅÍ·¹ÀÌÅÍ Iterator JMJS 24.1.26 384
48  re regular expression JMJS 24.1.26 355
47  read_excel()ÀÇ ÁöÁ¤ °¡´ÉÇÑ ¿É¼Ç JMJS 24.1.26 382
46  pandas to_excel sheet ¿©·¯Àå excel ÆÄÀÏ ¾²±â Àбâ JMJS 24.1.28 482
45  pandas ¼¿ isna isnull notna notnull JMJS 24.1.28 404
44  tkinter tk1.py JMJS 24.1.25 436
43  pandas _append df2.py JMJS 24.1.25 418
42  ÆÇ´Ù½º pandas DataFrame, list, dictionary, ... JMJS 24.1.25 423
41  f-string JMJS 24.6.18 439
40  pandas JMJS 24.1.17 355
39  __add__ __getattr__ __getitem__ __setitem__ JMJS 24.1.24 395
38  ÆÄÀ̽㠼³Ä¡°æ·Î È®ÀÎ JMJS 23.12.4 361
37  deepcopy JMJS 23.11.24 371
36  def func(*args): JMJS 23.11.24 412
35  sys.version_info JMJS 23.11.19 409
34  argparse add_argument parse_args JMJS 24.1.17 363
33  [bpy]bone2_wr.py JMJS 23.9.23 399
32  [bpy]bm.verts depsgraph JMJS 23.9.23 372
31  [bpy]keyframe_insert JMJS 23.9.23 379
30  [bpy]key_blocks JMJS 23.9.23 384
29  def abc (a=10,b=20,c=30) JMJS 23.8.1 389
28  shape prj JMJS 23.10.29 421
27  yaml JMJS 23.11.30 432
26  getopt arg argv JMJS 23.7.26 417
25  pg.mouse.get_pressed() pg.mouse.get_pos() JMJS 22.11.20 526
24  pg.MOUSEBUTTONDOWN event.button JMJS 22.11.20 533
23  ¸ðµÎÀÇ ÆÄÀ̽ã - 20Àϸ¸¿¡¹è¿ì´Â ÇÁ·Î±×·¡¹Ö ±âÃÊ JMJS 20.1.8 588
22  python -m pip install -U pip JMJS 19.11.25 513
21  get =lambda i,m ... JMJS 19.11.13 554
20  2Â÷¿ø ¸®½ºÆ®, Æ©Çà JMJS 19.11.13 537
19  [turtle]def polygon3(n,c,d) JMJS 19.11.11 562
18  [turtle]def polygon2(n,a) JMJS 19.11.11 570
17  def factorial(n) JMJS 19.11.11 507
16  def sum_func(n) JMJS 19.11.11 512
15  def hello() fun1(a) fun2(a,b) JMJS 19.11.11 509
14  while sum JMJS 19.11.11 594
13  random calculation JMJS 19.11.11 503
12  turtle random JMJS 19.11.11 508
11  import time time.time JMJS 19.11.11 615
10  turtle begin_fill end_fill JMJS 19.11.11 505
9  if else JMJS 19.11.11 502
8  input JMJS 19.11.11 507
7  list JMJS 24.3.1 574
6  turtle triangle JMJS 19.11.11 530
5  for range JMJS 19.11.11 519
4  ¸ðµâ »ç¿ëÇϱâ JMJS 19.11.11 556
3  import ÆÄÀ̽㠸ðµâ °¡Á®´Ù ¾²±â JMJS 19.11.11 542
1  print ÁÙ¹Ù²Þ JMJS 19.11.11 573
 ^_^ 70.1.1
[1]