Định dạng Painter trong Excel bằng Python

Đây là cách VBA để làm điều đó (từ sancho. s trong câu hỏi này), giả sử các trang tính trong mỗi sổ làm việc được đặt tên giống nhau. Bạn có thể sử dụng các đối tượng đó trong Python hoặc ít nhất là tạo macro này trong sổ làm việc mà bạn sao chép từ đó

Sub FormatMAC() Dim wb1 As Workbook, wb2 As Workbook Set wb1 = Workbooks("Results_2012 - Template - Master.xlsx") Set wb2 = Workbooks("Copy of Results_2012 - Template1.xlsm") Dim ws1 As Worksheet, ws2 As Worksheet For Each ws1 In wb1.Worksheets Set ws2 = wb2.Worksheets(ws1.Name) ws1.Cells.Copy ws2.Cells.PasteSpecial (xlPasteFormats) Next ws1 End Sub

Các thuộc tính của một ô có thể được định dạng bao gồm. phông chữ, màu sắc, hoa văn, đường viền, căn chỉnh và định dạng số

Tạo và sử dụng đối tượng Định dạng

Định dạng ô được xác định thông qua một đối tượng Định dạng. Các đối tượng định dạng được tạo bằng cách gọi phương thức cell_format = workbook.add_format({'bold': True, 'font_color': 'red'}) 8 của sổ làm việc như sau

cell_format1 = workbook.add_format() # Set properties later. cell_format2 = workbook.add_format(props) # Set properties at creation.

Có hai cách thiết lập thuộc tính Định dạng. bằng cách sử dụng giao diện đối tượng hoặc bằng cách đặt thuộc tính làm từ điển các cặp khóa/giá trị trong hàm tạo. Ví dụ: cách sử dụng điển hình của giao diện đối tượng sẽ như sau

cell_format = workbook.add_format() cell_format.set_bold() cell_format.set_font_color('red')

Bằng cách so sánh, các thuộc tính có thể được đặt bằng cách chuyển từ điển các thuộc tính tới hàm tạo cell_format = workbook.add_format({'bold': True, 'font_color': 'red'}) 8

cell_format = workbook.add_format({'bold': True, 'font_color': 'red'})

Nói chung, giao diện khóa/giá trị linh hoạt và rõ ràng hơn phương thức đối tượng và là phương thức được đề xuất để đặt thuộc tính định dạng. Tuy nhiên, cả hai phương pháp đều cho kết quả như nhau

Khi một đối tượng Định dạng đã được xây dựng và các thuộc tính của nó đã được thiết lập, nó có thể được chuyển thành đối số cho các phương thức worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 0 của trang tính như sau

worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format)

Các định dạng cũng có thể được chuyển đến các phương thức worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 1 và worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 2 của trang tính để xác định các thuộc tính định dạng mặc định cho một hàng hoặc cột

cell_format = workbook.add_format({'bold': True, 'font_color': 'red'}) 0

Định dạng Mặc định

Định dạng ô Excel 2007+ mặc định là Calibri 11 với tất cả các thuộc tính khác bị tắt

Nói chung, một lệnh gọi phương thức định dạng không có đối số sẽ bật một thuộc tính, chẳng hạn

cell_format = workbook.add_format({'bold': True, 'font_color': 'red'}) 1

Vì hầu hết các thuộc tính đã bị tắt theo mặc định nên thường không bắt buộc phải tắt chúng. Tuy nhiên, có thể nếu cần

cell_format = workbook.add_format({'bold': True, 'font_color': 'red'}) 2

Sửa đổi định dạng

Mỗi định dạng ô duy nhất trong bảng tính XlsxWriter phải có một đối tượng Định dạng tương ứng. Không thể sử dụng Định dạng với phương pháp worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 0 và sau đó xác định lại nó để sử dụng ở giai đoạn sau. Điều này là do Định dạng được áp dụng cho một ô không ở trạng thái hiện tại mà ở trạng thái cuối cùng. Xem xét ví dụ sau

cell_format = workbook.add_format({'bold': True, 'font_color': 'red'}) 4

Ô A1 được gán một định dạng ban đầu có phông chữ được đặt thành màu đỏ. Tuy nhiên, màu sau đó được đặt thành màu xanh lá cây. Khi Excel hiển thị Ô A1, nó sẽ hiển thị trạng thái cuối cùng của Định dạng, trong trường hợp này sẽ có màu xanh lục

Định dạng số ở các địa phương khác nhau

Như đã trình bày trong phần trước, phương pháp worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 4 được sử dụng để đặt định dạng số cho các định dạng Xlsxwriter. Một trường hợp sử dụng phổ biến là đặt định dạng số với dấu tách "nhóm/nghìn" và dấu "thập phân"

cell_format = workbook.add_format({'bold': True, 'font_color': 'red'}) 6

Ở ngôn ngữ Hoa Kỳ (và một số ngôn ngữ khác), trong đó dấu phân cách số "nhóm/nghìn" là "" và dấu "thập phân" là ". ” điều này sẽ được hiển thị trong Excel dưới dạng

Ở các địa phương khác, các giá trị này có thể bị đảo ngược hoặc khác. Chúng thường được đặt trong cài đặt “Vùng” của Windows hoặc Mac OS. Excel xử lý việc này bằng cách lưu trữ định dạng số ở định dạng tệp ở ngôn ngữ Hoa Kỳ, trong trường hợp này là worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 5, nhưng hiển thị nó theo cài đặt khu vực của Hệ điều hành máy chủ. Ví dụ: đây là cùng một tệp đầu ra, chưa sửa đổi, được hiển thị ở trên bằng ngôn ngữ tiếng Đức

Và đây là cùng một tệp trong một ngôn ngữ Nga. Lưu ý việc sử dụng khoảng trắng làm dấu phân cách “nhóm/nghìn”

Để sao chép hành vi của Excel, tất cả các chương trình XlsxWriter phải sử dụng định dạng ngôn ngữ Hoa Kỳ, sau đó sẽ được hiển thị trong cài đặt của Hệ điều hành máy chủ của bạn

Phương thức định dạng và thuộc tính định dạng

Bảng sau đây hiển thị các loại định dạng Excel, các thuộc tính định dạng có thể được áp dụng và phương pháp đối tượng tương đương

Các thuộc tính và phương thức định dạng được giải thích trong các phần sau

định dạng. set_font_name()

worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 6(tên phông chữ)

Đặt phông chữ được sử dụng trong ô

Thông số. tên phông chữ (chuỗi) – Phông chữ ô

Chỉ định phông chữ được sử dụng được sử dụng trong định dạng ô

cell_format = workbook.add_format({'bold': True, 'font_color': 'red'}) 9

Excel chỉ có thể hiển thị các phông chữ được cài đặt trên hệ thống mà nó đang chạy trên đó. Do đó, tốt nhất là sử dụng các phông chữ tiêu chuẩn như 'Calibri', 'Times New Roman' và 'Courier New'

Phông chữ mặc định cho một ô chưa được định dạng trong Excel 2007+ là 'Calibri'

định dạng. set_font_size()

worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 7(kích thước)

Đặt kích thước của phông chữ được sử dụng trong ô

Thông số. size (int) – Kích thước phông chữ của ô

Đặt kích thước phông chữ của định dạng ô

cell_format = workbook.add_format() cell_format.set_bold() cell_format.set_font_color('red') 0

Excel điều chỉnh chiều cao của một hàng để phù hợp với kích thước phông chữ lớn nhất trong hàng. Bạn cũng có thể chỉ định rõ ràng chiều cao của một hàng bằng cách sử dụng phương thức trang tính worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 1

định dạng. set_font_color()

worksheet.write (0, 0, 'Foo', cell_format) worksheet.write_string(1, 0, 'Bar', cell_format) worksheet.write_number(2, 0, 3, cell_format) worksheet.write_blank (3, 0, '', cell_format) 9(màu)

Đặt màu của phông chữ được sử dụng trong ô

Thông số. color (string) – Màu phông chữ của ô

Đặt màu phông chữ

cell_format = workbook.add_format() cell_format.set_bold() cell_format.set_font_color('red') 1

Màu có thể là chuỗi cell_format = workbook.add_format({'bold': True, 'font_color': 'red'}) 00 kiểu Html hoặc một số lượng giới hạn các màu được đặt tên, xem Làm việc với màu

Chủ đề