Cách thêm giá trị ô trong excel bằng python

Chúng ta có thể viết cả dữ liệu thô và công thức vào tệp Excel bằng Python. Thư viện openpyxl cung cấp cho chúng tôi rất nhiều tính linh hoạt để tạo tệp Excel

ghi-to-excel-python

Điều hướng tệp Excel bằng Python

Chúng tôi đã thảo luận về cách truy cập Trang tính và Ô trong hướng dẫn này

Trước tiên hãy tạo một sổ làm việc Excel bằng openpyxl. Lưu ý một Workbook luôn được tạo với ít nhất một Worksheet, wb. active trả về Worksheet đầu tiên bên trong Workbook

from openpyxl import Workbook

wb = Workbook[]
ws = wb.active

Trong Excel, hai cách phổ biến để tham chiếu vị trí ô là 1] ký hiệu hàng cột và 2] ký hiệu [hàng, col]. Ví dụ: bên dưới đề cập đến cùng một ô tại B3

ws['C2']


ws.cell[2,3]

Mặc dù con người dễ dàng đọc ký hiệu hàng cột như “C2”, nhưng khi chúng ta tương tác với các ô theo chương trình, việc sử dụng ký hiệu [hàng, col] sẽ dễ dàng hơn vì chúng chỉ là chỉ số/số. Điều duy nhất cần chú ý là chỉ số hàng và cột bắt đầu từ 1 thay vì 0

Phương pháp tiện ích tọa độ di động

openpyxl cung cấp một số phương thức tiện ích tiện dụng để chuyển đổi tọa độ. Từ cột-hàng đến [hàng, col] và ngược lại

from openpyxl.utils.cell import [cols_from_range,
                                 rows_from_range,
                                 column_index_from_string,
                                 get_column_letter, 
                                 coordinate_to_tuple]

column_index_from_string["A"]
1

get_column_letter[26]
'Z'

coordinate_to_tuple['B2']
[2, 2]

c = [2,3]
get_column_letter[c[1]] + str[c[0]]
'C2'

Chúng tôi cũng có thể nhận được tất cả các địa chỉ ô riêng lẻ từ một phạm vi. Lưu ý sự khác biệt dưới đây

  • cols_from_range[] tạo mỗi lần một cột
  • rows_from_range[] tạo ra một hàng tại một thời điểm
for c in cols_from_range["A1:F6"]:
    print[c]
['A1', 'A2', 'A3', 'A4', 'A5', 'A6']
['B1', 'B2', 'B3', 'B4', 'B5', 'B6']
['C1', 'C2', 'C3', 'C4', 'C5', 'C6']
['D1', 'D2', 'D3', 'D4', 'D5', 'D6']
['E1', 'E2', 'E3', 'E4', 'E5', 'E6']
['F1', 'F2', 'F3', 'F4', 'F5', 'F6']

for c in rows_from_range["A1:F6"]:
    print[c]
['A1', 'B1', 'C1', 'D1', 'E1', 'F1']
['A2', 'B2', 'C2', 'D2', 'E2', 'F2']
['A3', 'B3', 'C3', 'D3', 'E3', 'F3']
['A4', 'B4', 'C4', 'D4', 'E4', 'F4']
['A5', 'B5', 'C5', 'D5', 'E5', 'F5']
['A6', 'B6', 'C6', 'D6', 'E6', 'F6']

Viết giá trị vào Excel bằng Python

Có hai cách để ghi giá trị vào một ô. Một là bằng cách đặt ô. thuộc tính giá trị, cách khác là bằng cách gọi phương thức ô [hàng, col, giá trị]. Lưu ý bên dưới sự khác biệt tinh tế giữa các dòng #2 và #3

ws['C2'].value = 'Pi' 
ws.cell[2,4,value = 'Radius'] #cell D2
ws.cell[2,5].value = 'Area'   #cell E2

Ký hiệu [row, col] giúp việc lặp qua các ô trở nên dễ dàng

for i in range[1, 6]:
    # starts from cell D3, ends at cell D7
    ws.cell[2+i, 4].value = i 

Chúng ta cũng có thể sử dụng ô. phương thức offset[row, col] để trả về vị trí ô tương ứng với ô đang hoạt động

curr_cell = ws['D8']
for i in range[0,5]:
    curr_cell.offset[row=i, column = 0].value = i+6

Viết công thức cho Excel bằng Python

Viết công thức dễ như viết giá trị vào Excel. Tất cả những gì chúng ta cần là coi các công thức Excel là các giá trị Chuỗi và gán chúng cho. thuộc tính giá trị. Bên trong giá trị Chuỗi Python, chúng tôi muốn bắt đầu bằng dấu bằng = vì đó là cách chúng tôi bắt đầu một công thức Excel

ws['C3'].value = '=pi[]'

Bạn muốn sử dụng tham chiếu tuyệt đối bằng cách “sửa chữa” tọa độ ô trong công thức của mình? . Chúng ta có thể lấy tọa độ từ một đối tượng Ô từ. thuộc tính tọa độ trả về giá trị Chuỗi biểu thị địa chỉ ô. Tất nhiên, trong ví dụ này, chúng tôi đã biết đó là “C3” vì đó là những gì chúng tôi đã nhập vào mã. Điều này là để chỉ ra cách lấy tọa độ của một ô theo chương trình

________số 8

Để tạo một tham chiếu tuyệt đối, chúng ta có thể sử dụng phương thức absolute_coordinate[] trong mô-đun tiện ích. Về cơ bản, nó chỉ thêm các dấu $ để sửa một ô

from openpyxl.utils.cell import absolute_coordinate
absolute_coordinate[ws['C3'].coordinate]
'$C$3'

Hãy tính cột Diện tích bằng cách viết công thức Excel vào các ô, sau đó lưu file Excel vào đĩa

nhập sổ làm việc xlsxwriter = xlsxwriter. Sổ làm việc ['write_list. xlsx'] trang tính = sổ làm việc. add_worksheet[] my_list = [[1, 1, 1, 1, 1], [2, 2, 2, 2, 1], [3, 3, 3, 3, 1], [4, 4, 4, 4 . cho col_num, col_data trong liệt kê [row_data]. bảng tính. sổ làm việc write[row_num, col_num, col_data]. đóng lại[]

Chủ Đề