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 83
60  img2rgb.py PIL lambda print end prn sys.argv JMJS 24.6.18 341
59  cv2 image pixel bgr °ª ¼öÁ¤Çϱâ JMJS 24.3.1 364
58  ±ÛÀÚÇǶó¹Ìµå lpyramid.py JMJS 24.3.1 405
57  µñ¼Å³Ê¸® dictionary µñ¼Å³Ê¸® key¿Í value µÚÁý±â ... JMJS 24.3.1 344
56  bus idx2set cap JMJS 24.2.22 358
55  ÆÄÀ̽㠸®½ºÆ®¿¡¼­ ºó ¹®ÀÚ¿­ÀÎ ¿ø¼Ò Á¦°ÅÇϱâ JMJS 24.2.22 352
54  openpyxl JMJS 24.2.22 358
53  Decorators µ¥ÄÚ·¹ÀÌÅÍ JMJS 24.2.29 365
52  walrus operator := and for in list JMJS 24.2.1 353
51  pandas Çà Ãß°¡ JMJS 24.1.28 326
50  split with brackets JMJS 24.1.27 341
49  ÀÌÅÍ·¹ÀÌÅÍ Iterator JMJS 24.1.26 363
48  re regular expression JMJS 24.1.26 334
47  read_excel()ÀÇ ÁöÁ¤ °¡´ÉÇÑ ¿É¼Ç JMJS 24.1.26 351
46  pandas to_excel sheet ¿©·¯Àå excel ÆÄÀÏ ¾²±â Àбâ JMJS 24.1.28 405
45  pandas ¼¿ isna isnull notna notnull JMJS 24.1.28 379
44  tkinter tk1.py JMJS 24.1.25 401
43  pandas _append df2.py JMJS 24.1.25 377
42  ÆÇ´Ù½º pandas DataFrame, list, dictionary, ... JMJS 24.1.25 387
41  f-string JMJS 24.6.18 401
40  pandas JMJS 24.1.17 337
39  __add__ __getattr__ __getitem__ __setitem__ JMJS 24.1.24 365
38  ÆÄÀ̽㠼³Ä¡°æ·Î È®ÀÎ JMJS 23.12.4 344
37  deepcopy JMJS 23.11.24 355
36  def func(*args): JMJS 23.11.24 374
35  sys.version_info JMJS 23.11.19 392
34  argparse add_argument parse_args JMJS 24.1.17 344
33  [bpy]bone2_wr.py JMJS 23.9.23 379
32  [bpy]bm.verts depsgraph JMJS 23.9.23 356
31  [bpy]keyframe_insert JMJS 23.9.23 359
30  [bpy]key_blocks JMJS 23.9.23 365
29  def abc (a=10,b=20,c=30) JMJS 23.8.1 369
28  shape prj JMJS 23.10.29 391
27  yaml JMJS 23.11.30 401
26  getopt arg argv JMJS 23.7.26 393
25  pg.mouse.get_pressed() pg.mouse.get_pos() JMJS 22.11.20 493
24  pg.MOUSEBUTTONDOWN event.button JMJS 22.11.20 500
23  ¸ðµÎÀÇ ÆÄÀ̽ã - 20Àϸ¸¿¡¹è¿ì´Â ÇÁ·Î±×·¡¹Ö ±âÃÊ JMJS 20.1.8 543
22  python -m pip install -U pip JMJS 19.11.25 494
21  get =lambda i,m ... JMJS 19.11.13 522
20  2Â÷¿ø ¸®½ºÆ®, Æ©Çà JMJS 19.11.13 512
19  [turtle]def polygon3(n,c,d) JMJS 19.11.11 532
18  [turtle]def polygon2(n,a) JMJS 19.11.11 540
17  def factorial(n) JMJS 19.11.11 487
16  def sum_func(n) JMJS 19.11.11 495
15  def hello() fun1(a) fun2(a,b) JMJS 19.11.11 492
14  while sum JMJS 19.11.11 575
13  random calculation JMJS 19.11.11 484
12  turtle random JMJS 19.11.11 491
11  import time time.time JMJS 19.11.11 596
10  turtle begin_fill end_fill JMJS 19.11.11 487
9  if else JMJS 19.11.11 486
8  input JMJS 19.11.11 487
7  list JMJS 24.3.1 545
6  turtle triangle JMJS 19.11.11 504
5  for range JMJS 19.11.11 501
4  ¸ðµâ »ç¿ëÇϱâ JMJS 19.11.11 528
3  import ÆÄÀ̽㠸ðµâ °¡Á®´Ù ¾²±â JMJS 19.11.11 512
1  print ÁÙ¹Ù²Þ JMJS 19.11.11 554
 ^_^ 70.1.1
[1]