2017-09-19 34 views
-1

我有一個用於通過python openpyxl讀取數據的Excel工作表...所以在我的腳本中,我的值被硬編碼爲ws ['E2':' AB3']作爲AB3是最後一項要讀...但現在工作表被更新,現在最後一個單元格座標是AR3 ...我如何使代碼通用,以便每次工作表更新代碼應該工作.. ? 注(我找出行和列板總數...我能做些什麼)如何將工作表的範圍作爲變量

rows = ws.max_row 
column = ws.max_column 
print(rows,column) 
column_letter = get_column_letter(column) 
print(column_letter) 
+0

請再具體些,你希望它自動加載特定的列類型或只能夠裝載所有的列? –

+0

加載所有的列直到最後 – Abhishek

回答

-1

如果你只是希望加載的所有列,使用熊貓,它的簡單,並具有更多的功能。

import pandas as pd 

# Load in the Excel file (sheetname is optional, defaults to first sheet) 
df = pd.read_excel('/some/file/path/excel_file_name.xlsx', sheetname='Sheetx') 

# Check the first 5 rows 
print(df.head()) 
+0

我怎樣才能將工作表的範圍作爲WS ['F2':'A03']到WS ['F2':'AR3']我將列號轉換爲列字母,所以爲44它是AR,所以我做了這個行= ws.max_row column = ws.max_column print(rows,column) column_letter = get_column_letter(column) print(column_letter)//打印AR count = column_letter //將AR放入計數變量 fatrows = ws ['F2':'count3'] ...但它不工作我怎麼能使它成爲可能....請幫助我 – Abhishek

+0

openpyxl或xlrd(由Pandas內部使用)給用戶更多的控制瞭解如何讀取工作表。 –

0

問題:我怎樣才能使代碼通用

注意:我認爲你總是希望在 'E2' 開始。

from openpyxl.utils import range_boundaries 
# Define only start 'E2',  
# all max_* values, last Row, Column, are returned by Default 
min_col, min_row, max_col, max_row = range_boundaries('E2') 

# Iterate all Rows, starting at min_row == 2 
for columns in worksheet.iter_rows(min_col=min_col, min_row=min_row, max_col=max_col, max_row=max_row): 
    # Iterate all Columns, starting at min_col == 'E' 
    for cell in columns: 
     print('%s: cell.value=%s' % (cell, cell.value))