82199


Python3で`openpyxl`を使ってExcelのオートフィルオプションのNOをA1から追加したいです。

下記のコードを使って行いましたが毎回データが不定期なので、自動的にB1（都市）のセルの最終行を取得してA1へ `No` をExcel
で「1、2、3......」のような数値の連続データを入力したいです。

また `warn("Workbook contains no default style, apply openpyxl's default")`
のエラーが表示されます。

ご指導をお願いできますでしょうか。

*国と地域数の列に空白があります。

**Excel Data**

国 | 都市 | 地域数  
---|---|---  
アメリカ | カリフォルニア | 22  
| フロリダ |  
フランス | パリ | 13  
日本 | 東京 | 26  
| 沖縄 |  
| 京都 | 11  
  
**Excel Data**  
実現したい内容の結果になります。  
元のエクセルのデータを見て  
自動的にB1（都市）のセールの最終行を取得してA1へ `No` をExcel で「1、2、3......」のような数値の連続データを入力したいです。

**Excel Data Result**

No | 国 | 都市 | 地域数  
---|---|---|---  
1 | アメリカ | カリフォルニア | 22  
2 |  | フロリダ | 22  
3 | フランス | パリ | 13  
4 | 日本 | 東京 | 26  
5 |  | 沖縄 | 14  
6 |  | 京都 | 11  
  
**Code**

[code]

    import pandas as pd
    from openpyxl import Workbook, load_workbook
    from openpyxl.utils.dataframe import dataframe_to_rows
    
    #EXCEL READ
    wb = load_workbook("test.xlsx")
    #SHEET 
    ws = wb['Sheet1']
    ws = wb.active
    #insert_A1
    ws.insert_cols(1)
    ws['A1']='No'
    ws['A2']='1'
    ws['A3']='2'
    ws['A4']='3'
    ws['A5']='4'
    ws['A6']='5'
    ws['A7']='6'
    
    #save excel
    wb.save('test2.xlsx')
    
[/code]


CC BY-SA 4.0
2021-09-03T03:00:57.057
82198
2021-09-03T04:14:08.940
2021-09-03T04:14:08.940
18859
18859
question
python python3 openpyxl
OpenPyXL でオートフィルを使って数値を自動で入力したい


ワークシート内でデータ、もしくは書式設定が存在する最大の行番号は `ws.max_row`
で取得可能です。ですので、以下の様にして値を設定することができます。

[code]

    #insert_A1
    ws.insert_cols(1)
    ws['A1'] = 'No'
    for i in range(2, ws.max_row+1):
      ws.cell(row=i, column=1).value = i - 1
    
[/code]


CC BY-SA 4.0
2021-09-03T03:38:33.163
82199
2021-09-03T03:43:45.537
2021-09-03T03:43:45.537
47127
47127
82198
answer