befaint
|||||||||||||
- Tham gia
- 6/1/11
- Bài viết
- 14,540
- Được thích
- 19,749
Ứng dụng Python trong việc xử lý dữ liệu Excel với file đóng (tức là không cần mở file lên để xử lý): Như đọc, ghi dữ liệu trên Range, thay đổi cấu trúc bảng (chèn, xóa dòng/ cột...).
Nhân tiện chủ đề này Chèn cột để đồng nhất cơ sở dữ liệu nên sẽ đăng bài xử lý về cấu trúc trước, cơ bản gọi là ghi dữ liệu vào file đóng.
1. Các thứ cần chuẩn bị
Theo hướng dẫn ở bài này: Python với Excel - Mở đầu và cài đặt thư viện
2. Code
Mượn các files ở Chèn cột để đồng nhất cơ sở dữ liệu, code viết cụ thể cho yêu cầu tại chủ đề đó.
***
Tải file Python insert_columns.zip ở dưới, giải nén..
Trong thư mục Python insert_columns mở file insert_columns.py bằng IDLE Python rồi nhấn phím F5 để chạy code.
Chạy tẹo là xong..
![216874 216874](https://www.giaiphapexcel.com/diendan/data/attachments/173/173862-1fccf69a211629fe70bf6d03942a49df.jpg?hash=H8z2miEWKf)
Nhân tiện chủ đề này Chèn cột để đồng nhất cơ sở dữ liệu nên sẽ đăng bài xử lý về cấu trúc trước, cơ bản gọi là ghi dữ liệu vào file đóng.
1. Các thứ cần chuẩn bị
Theo hướng dẫn ở bài này: Python với Excel - Mở đầu và cài đặt thư viện
2. Code
Mượn các files ở Chèn cột để đồng nhất cơ sở dữ liệu, code viết cụ thể cho yêu cầu tại chủ đề đó.
Python:
import time, os
from openpyxl import load_workbook
excel_extension = ".xlsx"
def get_excel_files(excel_ext):
""" return list of full path of Excel files """
excel_files = []
top_path = os.path.dirname(os.path.abspath(__file__))
for file in os.listdir(top_path):
if file.endswith(excel_ext):
excel_files.append(os.path.join(top_path, file))
return excel_files
def inset_columns(file_name):
wb = load_workbook(file_name)
ws = wb.active # activesheet
y = str(ws['C7'].value) # get value of cell [C7]
try:
yy = abs(int(eval(y))) - 2014
except:
yy = 0
# insert columns
if yy > 0 and yy < 5:
ws.insert_cols(3, yy)
# write year into range ['C7:G7']
for i in range(3, 8):
ws.cell(row = 7, column = i, value = 2014 + i - 3)
wb.save(file_name)
# run
time_start = time.time()
for excelfile in get_excel_files(excel_extension):
inset_columns(excelfile)
print(time.time() - time_start)
***
Tải file Python insert_columns.zip ở dưới, giải nén..
Trong thư mục Python insert_columns mở file insert_columns.py bằng IDLE Python rồi nhấn phím F5 để chạy code.
Chạy tẹo là xong..
![216874 216874](https://www.giaiphapexcel.com/diendan/data/attachments/173/173862-1fccf69a211629fe70bf6d03942a49df.jpg?hash=H8z2miEWKf)
File đính kèm
Lần chỉnh sửa cuối: