Hướng dẫn python write to existing excel file using openpyxl - python ghi vào tệp excel hiện có bằng openpyxl

Về cơ bản, tôi đang cố gắng sao chép một số cột cụ thể từ tệp CSV và dán các cột vào tệp Excel hiện có [*. XLSX] bằng Python. Ví dụ, bạn có một tệp CSV như thế này:

 col_1   col_2   col_3  col_4
  1        2       3     4
  5        6       7     8
  9       10      11    12 

Vì vậy, tôi muốn sao chép cả col_3 và col_4 và dán những cái đó vào col_8 và col_9 trong một tệp excel hiện có [đó là định dạng .xlsx]. Tôi đã thử điều này theo nhiều cách để giải quyết, nhưng không thể tìm ra cách chính xác. Tôi đã thử một cái gì đó như thế này:

with open( read_x_csv, 'rb') as f:
    reader = csv.reader(f)
    for row in reader: 
            list1 = row[13] 
            queue1.append(list1)
            list2 = row[14] 
            queue2.append(list2)
            list3 = row[15] 
            queue3.append(list3)
            list4 = row[16] 
            queue4.append(list4)

và sau đó

 rb = open_workbook("Exact file path.....")
 wb = copy(rb)
 ws = wb.get_sheet(0) 

 row_no = 0

 for item in queue1:
    if(item != ""):
            ii = int(item)
            ws.write(row_no,12,ii) 
            row_no = row_no + 1
            #ws.write(item)
            print item
    else:

            ws.write(row_no,12,item) 
            row_no = row_no + 1

  wb.save("Output.xls") 

Nhưng vấn đề với giải pháp này là nó không cho phép tôi lưu dưới dạng *.xlsx định dạng được yêu cầu nghiêm ngặt đối với tôi.

Tôi đã cố gắng sử dụng openpyxl vì nó có thể xử lý định dạng *.xlsx, nhưng không thể tìm ra cách để sửa đổi tệp excel hiện có. Bất cứ ai có thể vui lòng giúp đỡ về điều này?

Nghi ngờ: 1) Chúng ta có thể thực sự đọc toàn bộ cột từ tệp CSV và lưu trữ vào một mảng/danh sách bằng Python không? 2) Chúng ta có thể sửa đổi tệp Excel hiện có ở định dạng .xlsx bằng OpenPyXL hoặc bất kỳ gói nào khác không?

Tôi đang cố gắng làm cho mã này hoạt động, vấn đề là trong tệp Excel, dữ liệu in (...) không được viết, tôi đã cố gắng sử dụng ws.appened (...) nhưng không có kết quả. & Nbsp;

import arcpy
from openpyxl import Workbook
wb = Workbook("C:/Users/Hp/Desktop/ejemplo/VINCULACION_S.xlsx")
ws =  wb.active
rows = arcpy.SearchCursor("C:/Users/Hp/Desktop/ejemplo/VH_Dissolve.shp",
                          fields="COLOR; INTERNO_DE; CLASE_DEMA; COUNT_AREA; SUM_AREA; SUM_LENGTH",
                          sort_fields="COLOR 222; INTERNO_DE A")
# COLOR, INTERNO_DE, CLASE_DEMA, COUNT_AREA, SUM_AREA y SUM_LENGTH.
for row in rows:
    print("Color: {0}, Interno: {1}, Clase:{2}, ContarA: {3}, SumarA: {4}, SumarL: {5}".format(
        row.getValue("COLOR"),
        row.getValue("INTERNO_DE"),
        row.getValue("CLASE_DEMA"),
        row.getValue("COUNT_AREA"),
        row.getValue("SUM_AREA"),
        row.getValue("SUM_LENGTH")))
wb.save('VINCULACION_S.xlsx')

Tôi cũng đã cố gắng xác định vị trí dữ liệu kết quả trong tệp Excel từ ô B3: G3 trở đi nhưng tôi không thể tìm thấy nó.

Bảng tính Excel có thể mạnh mẽ, nhưng một số nhiệm vụ có thể yêu cầu thêm sức mạnh lập trình. Nhập Python và mô -đun OpenPyXL.

OpenPyXL cung cấp các chức năng cho phép bạn làm việc với một tệp Excel từ Python. Bạn có thể sử dụng nó để xử lý dữ liệu, tạo bảng tính mới và thậm chí thao túng các công thức.

Thư viện rất tiện dụng nếu bạn cần tự động hóa các tính toán lặp đi lặp lại giống nhau trên nhiều tệp Excel. Đây có thể là trường hợp nếu bạn cần xử lý dữ liệu lớn hoặc thực hiện phân tích dữ liệu.

Cách cài đặt mô -đun OpenPyXL

Đầu tiên, hãy cài đặt OpenPyXL vào máy tính của bạn với các bước sau:

  1. Mở dấu nhắc lệnh và chạy như sau: ________ 4
  2. Nếu những điều trên không hoạt động, bạn có thể tải xuống mô -đun từ trang tải xuống của OpenPyXL,:

    Browser open to page where you can download Openpyxl

    1. Tải xuống tệp openpyxl-version.tar.gz.
    2. Trích xuất các nội dung tệp.
    3. Mở dấu nhắc lệnh. Điều hướng đến thư mục của các tệp được trích xuất và chạy lệnh sau: ________ 5

Tạo các tệp Excel và dữ liệu kiểm tra của bạn

Tạo nhiều tệp Excel và thêm một số dữ liệu kiểm tra cho chúng. Nếu bạn chưa quen với Excel, có rất nhiều công cụ có thể giúp bạn học nó.

  1. Tạo một số tệp Excel trong cùng một thư mục. Trong kịch bản này, có năm tệp Excel. Mỗi tập tin lưu trữ dữ liệu dân số cho ba quốc gia khác nhau.

    Windows File Explorer open showing many Excel files

  2. Trong mỗi tệp Excel, thêm một số dữ liệu kiểm tra. Ví dụ:

    Excel File opened with table of population data

Ví dụ này bao gồm dữ liệu liên quan đến dân số của nhiều quốc gia.

Cách tạo tập lệnh Python

Tạo tập lệnh Python như sau:

  1. Tạo một tệp mới có tên là DataAnalySissisccript.py. Mở nó bằng bất kỳ trình soạn thảo văn bản tốt nào, như Visual Studio Code hoặc Atom.
  2. Thêm ba lần nhập sau ở đầu tệp. "HĐH" và "SYS" liên quan đến việc truy cập các tệp trên máy tính của bạn hoặc đóng chương trình. "OpenPyxl" là mô -đun được tải xuống trong bước trước cho phép bạn đọc và ghi các tệp excel .________ 6
  3. Bên dưới nhập khẩu, thêm cấu trúc cơ bản của tập lệnh Python bên dưới. Hãy nhớ rằng cấu trúc mã trong Python phụ thuộc vào vết lõm chính xác .________ 7
  4. Bên trong vòng lặp trong khi, thêm lời nhắc để người dùng nhập đường dẫn vào thư mục chứa các tệp excel.

Cách đọc và ghi dữ liệu từ các tệp Excel

Sử dụng một vòng lặp để mở, đọc, thao tác và đóng từng tệp Excel.

  1. Thêm một vòng lặp cho mỗi tệp Excel. Bên trong vòng lặp, mở mỗi tệp .________ 9
  2. Mã sau đọc một giá trị cụ thể từ một ô cụ thể: ________ 10
  3. Mã sau đây ghi dữ liệu vào ô "A10": ________ 11 Bạn cũng có thể ghi vào ô bằng cách chỉ định số hàng và số cột. Mã sau đây thêm số "2" vào ô "F1" .________ 12

Cách thực hiện các chức năng Excel tích hợp bằng cách sử dụng tập lệnh Python

Đối với mỗi tệp Excel, hãy tính tổng độ lệch, trung bình và độ lệch chuẩn cho từng cột "quốc gia". Mã sau đây tính toán tổng của tất cả các số cho mỗi quốc gia:

with open( read_x_csv, 'rb') as f:
    reader = csv.reader(f)
    for row in reader: 
            list1 = row[13] 
            queue1.append(list1)
            list2 = row[14] 
            queue2.append(list2)
            list3 = row[15] 
            queue3.append(list3)
            list4 = row[16] 
            queue4.append(list4)
3
  • '= Sum (b4: b9)' là tính toán excel sẽ thêm tất cả các số trong cột B giữa các ô B4 và B9.
  • Bảng [F'B11 ']. Giá trị là giá trị trong ô B11. Chương trình sẽ lưu trữ kết quả cuối cùng trong ô này.

Bạn cũng có thể tính toán các hàm excel trung bình và độ lệch chuẩn theo cùng một cách hiển thị ở trên.

with open( read_x_csv, 'rb') as f:
    reader = csv.reader(f)
    for row in reader: 
            list1 = row[13] 
            queue1.append(list1)
            list2 = row[14] 
            queue2.append(list2)
            list3 = row[15] 
            queue3.append(list3)
            list4 = row[16] 
            queue4.append(list4)
4
with open( read_x_csv, 'rb') as f:
    reader = csv.reader(f)
    for row in reader: 
            list1 = row[13] 
            queue1.append(list1)
            list2 = row[14] 
            queue2.append(list2)
            list3 = row[15] 
            queue3.append(list3)
            list4 = row[16] 
            queue4.append(list4)
5

Excel File opened with Sum, Average, and Standard Deviation Filled

Cách ghi vào tệp và đóng sổ làm việc

Mã còn lại lưu và đóng từng sổ làm việc, sau đó đóng chương trình.

  1. Bên trong vòng lặp For, sau khi thực hiện các hàm Excel cần thiết, hãy lưu các thay đổi được thực hiện cho tệp Excel .________ 16
  2. Bên ngoài vòng lặp, đóng kịch bản Python .________ 17

Mã hoàn toàn:

with open( read_x_csv, 'rb') as f:
    reader = csv.reader(f)
    for row in reader: 
            list1 = row[13] 
            queue1.append(list1)
            list2 = row[14] 
            queue2.append(list2)
            list3 = row[15] 
            queue3.append(list3)
            list4 = row[16] 
            queue4.append(list4)
8

Cách chạy tập lệnh Python

  1. Mở dấu nhắc lệnh. Điều hướng đến nơi bạn lưu trữ tập lệnh của bạn. Nếu bạn lưu trữ kịch bản của mình trên máy tính để bàn, lệnh sẽ trông giống như thế này: ________ 19
  2. Nhập phần sau để chạy tập lệnh: ________ 20
  3. Kịch bản sẽ bắt đầu bằng cách yêu cầu bạn nhập thư mục lưu trữ tất cả các tệp Excel của bạn. Ví dụ, nếu bạn lưu trữ thư mục này trên máy tính để bàn, đường dẫn tệp sẽ là: ________ 21
  4. Mở một trong các tệp Excel trong thư mục để xem các thay đổi được thực hiện.

Đảm bảo rằng không có tệp excel nào được mở khi bạn chạy tập lệnh.

Tự động hóa nhiều hơn với Python

Bây giờ bạn có những điều cơ bản về cách thực hiện các hàm Excel bên trong kịch bản Python. Bây giờ bạn có thể tìm hiểu cách thực hiện nhiều chức năng Excel hơn, cũng như nhiều cách khác để tự động hóa các tệp Excel. Điều này bao gồm sử dụng thư viện như gấu trúc để nhập dữ liệu hoặc thậm chí sử dụng Visual Basic để thực hiện các tác vụ lặp đi lặp lại trong Excel.

Làm cách nào để ghi vào một tệp excel hiện có trong Python?

OpenPyXL là thư viện Python để đọc/ghi các tệp Excel XLSX/XLSM/XLTX/XLTM ...
Mở tệp Excel ..
Tạo một bản sao có thể ghi của tệp Excel đã mở ..
Đọc tờ đầu tiên để viết trong bản sao có thể ghi ..
Sửa đổi giá trị tại vị trí mong muốn ..
Lưu sách bài tập ..
Chạy chương trình..

Làm cách nào để sử dụng openpyxl để viết vào excel?

Python openpyxl..
OpenPyxl. OpenPyXL là thư viện Python để đọc và ghi các tệp XLSX/XLSM/XLSM/XLTX/XLTM Excel 2010. ....
OpenPyXL Tạo tệp mới. ....
OpenPyxl ghi vào một ô. ....
OpenPyXL Giá trị nối. ....
OpenPyxl đọc ô. ....
OpenPyXL đọc nhiều ô. ....
OpenPyxl lặp lại theo hàng. ....
OpenPyxl lặp lại theo cột ..

Làm thế nào để bạn viết dữ liệu trong tờ Excel hiện có bằng Python Pandas?

Sử dụng chức năng Pandas to_excel () để ghi DataFrame vào bảng excel với phần mở rộng .xlsx.Theo mặc định, nó ghi một khung dữ liệu duy nhất vào tệp Excel, bạn cũng có thể viết nhiều tờ bằng cách sử dụng đối tượng Excelwriter có tên tệp đích và tên trang tính để ghi vào. xlsx. By default it writes a single DataFrame to an excel file, you can also write multiple sheets by using an ExcelWriter object with a target file name, and sheet name to write to.

Làm thế nào để bạn viết dữ liệu bằng openpyxl trong python?

OpenPyxl ghi dữ liệu vào ô..
Từ OpenPyxl Nhập tải_workbook ..
wb = load_workbook (r'c: \ users \ devansh sharma \ desktop \ demo. xlsx ').
Tờ = WB.tích cực..
Tờ ['A1'] = 'Devansh Sharma'.
tờ giấy.ô (hàng = 2, cột = 2).Giá trị = 5 ..
WB.Lưu (r'c: \ users \ devansh Sharma \ Desktop \ demo. xlsx ').