2012-09-12 38 views
16

Vui lòng ai đó hiển thị ví dụ về cách áp dụng định dạng số cho ô. Ví dụ, tôi cần định dạng khoa học, hình thức sẽ giống như '2.45E + 05' nhưng tôi không thể tìm ra cách để làm điều đó trong openpyxl.Định dạng số cài đặt Openpyxl

Tôi đã thử theo nhiều cách nhưng tất cả đều là lỗi báo cáo khi lưu sổ làm việc.

ví dụ:

import openpyxl as oxl 

    wb = oxl.Workbook() 
    ws = wb.create_sheet(title='testSheet') 
    _cell = ws.cell('A1') 
    _cell.style.number_format = '0.00E+00' 

hay này (ở đây tôi đang cố gắng để sử dụng một số định dạng số được xác định trước, tôi cũng đã thấy có định dạng kỹ thuật trong builtins nhưng không biết làm thế nào để truy cập vào nó :

nf = oxl.style.NumberFormat.FORMAT_NUMBER_00 
    _cell.style.number_format = nf 

tôi đã thấy chủ đề này:. Setting styles in Openpyxl nhưng nó không giúp vì tôi không phải thay đổi bất kỳ cài đặt định dạng khác

EDIT

Dưới đây là lỗi:

C:\Python27\openpyxl\cell.pyc in is_date(self) 
    408   """ 
    409   return (self.has_style 
--> 410     and self.style.number_format.is_date_format() 
    411     and isinstance(self._value, NUMERIC_TYPES)) 

AttributeError: 'str' object has no attribute 'is_date_format' 

Trong cả hai trường hợp tôi nhận được lỗi tương tự.

+1

gì cách bạn đã cố gắng, và đó lỗi bạn đã nhìn thấy? –

+1

Tôi đã chỉnh sửa bài đăng của mình và lỗi mà tôi nhận được là về định dạng số có is_date_format được đặt thành Không có gì đó hoặc giống như vậy. Tôi sẽ kiểm tra nó sau này chi tiết hơn. – Renesis

Trả lời

30

Đối với những người được gửi ở đây bởi Google (như tôi đã được). Câu trả lời được chấp nhận không hoạt động với openpyxl 2.0. Số_format có thể được thay đổi trực tiếp.

Ví dụ cho trở thành:

from openpyxl import Workbook 

wb = Workbook() 
ws = wb.create_sheet(title='testSheet') 
_cell = ws.cell('A1') 
_cell.number_format = '0.00E+00' 
+2

Đây phải là câu trả lời được chấp nhận ngay bây giờ. –

+0

Trên thực tế, những điều sau đây đã làm việc cho tôi: '_cell.number_format = '0'' ' _cell.value = int (x) ' – Jason

+0

Cảm ơn bạn. Có phải tôi hoặc là tài liệu openpyxl hầu như không tồn tại. – otocan

5

Nevermind, I figured it out, nó phải được sử dụng như thế này (nếu sử dụng cùng mã như trước đây):

_cell.style.number_format.format_code = '0.00E+00' 
+0

Bị bỏ phiếu, vì một OP quan tâm sẽ chấp nhận câu trả lời chính xác (hiện tại). –

Các vấn đề liên quan