
- Python XlsxWriter 教程
- Python XlsxWriter - 首頁
- Python XlsxWriter - 概述
- Python XlsxWriter - 環境設定
- Python XlsxWriter - Hello World
- Python XlsxWriter - 重要類
- Python XlsxWriter - 單元格表示法與範圍
- Python XlsxWriter - 已定義名稱
- Python XlsxWriter - 公式與函式
- Python XlsxWriter - 日期和時間
- Python XlsxWriter - 表格
- Python XlsxWriter - 應用篩選器
- Python XlsxWriter - 字型與顏色
- Python XlsxWriter - 數字格式
- Python XlsxWriter - 邊框
- Python XlsxWriter - 超連結
- Python XlsxWriter - 條件格式
- Python XlsxWriter - 新增圖表
- Python XlsxWriter - 圖表格式
- Python XlsxWriter - 圖表圖例
- Python XlsxWriter - 條形圖
- Python XlsxWriter - 折線圖
- Python XlsxWriter - 餅圖
- Python XlsxWriter - 迷你圖
- Python XlsxWriter - 資料驗證
- Python XlsxWriter - 大綱與分組
- Python XlsxWriter - 凍結與分割窗格
- Python XlsxWriter - 隱藏/保護工作表
- Python XlsxWriter - 文字框
- Python XlsxWriter - 插入圖片
- Python XlsxWriter - 頁面設定
- Python XlsxWriter - 頁首與頁尾
- Python XlsxWriter - 單元格批註
- Python XlsxWriter - 與Pandas協同工作
- Python XlsxWriter - VBA宏
- Python XlsxWriter 有用資源
- Python XlsxWriter - 快速指南
- Python XlsxWriter - 有用資源
- Python XlsxWriter - 討論
Python XlsxWriter - 日期與時間
在Excel中,日期被儲存為實數,以便能夠用於計算。預設情況下,1900年1月1日(稱為紀元)被視為1,因此2022年1月28日對應於44589。類似地,時間表示為數字的小數部分,即一天的百分比。因此,2022年1月28日11:00對應於44589.45833。

set_num_format() 方法
由於Excel中的日期或時間就像任何其他數字一樣,要將數字顯示為日期,必須對其應用Excel數字格式。使用set_num_format()方法(Format物件)並使用適當的格式。
以下程式碼片段將數字顯示為“dd/mm/yy”格式。
num = 44589 format1 = wb.add_format() format1.set_num_format('dd/mm/yy') ws.write('B2', num, format1)
num_format 引數
或者,可以將add_format()方法的num_format引數設定為所需的格式。
format1 = wb.add_format({'num_format':'dd/mm/yy'}) ws.write('B2', num, format1)
示例
以下程式碼顯示各種日期格式的數字。
import xlsxwriter wb = xlsxwriter.Workbook('hello.xlsx') ws = wb.add_worksheet() num=44589 ws.write('A1', num) format2 = wb.add_format({'num_format': 'dd/mm/yy'}) ws.write('A2', num, format2) format3 = wb.add_format({'num_format': 'mm/dd/yy'}) ws.write('A3', num, format3) format4 = wb.add_format({'num_format': 'd-m-yyyy'}) ws.write('A4', num, format4) format5 = wb.add_format({'num_format': 'dd/mm/yy hh:mm'}) ws.write('A5', num, format5) format6 = wb.add_format({'num_format': 'd mmm yyyy'}) ws.write('A6', num, format6) format7 = wb.add_format({'num_format': 'mmm d yyyy hh:mm AM/PM'}) ws.write('A7', num, format7) wb.close()
輸出
在Excel軟體中,工作表如下所示:

write_datetime() 和 strptime()
XlsxWriter 的 Worksheet 物件也有write_datetime()方法,在處理使用Python標準庫的datetime模組獲得的日期和時間物件時非常有用。
strptime()方法根據給定的格式返回從字串解析的datetime物件。一些用於格式化字串的程式碼如下:
%a |
縮寫的星期幾名稱 |
Sun, Mon |
%A |
完整的星期幾名稱 |
Sunday, Monday |
%d |
月份中的天數,為零填充的十進位制數 |
01, 02 |
%-d |
月份中的天數,為十進位制數 |
1, 2.. |
%b |
縮寫的月份名稱 |
Jan, Feb |
%m |
月份,為零填充的十進位制數 |
01, 02 |
%-m |
月份,為十進位制數 |
1, 2 |
%B |
完整的月份名稱 |
January, February |
%y |
不帶世紀的年份,為零填充的十進位制數 |
99, 00 |
%-y |
不帶世紀的年份,為十進位制數 |
0, 99 |
%Y |
帶世紀的年份,為十進位制數 |
2022, 1999 |
%H |
小時(24小時制),為零填充的十進位制數 |
01, 23 |
%-H |
小時(24小時制),為十進位制數 |
1, 23 |
%I |
小時(12小時制),為零填充的十進位制數 |
01, 12 |
%-I |
小時(12小時制),為十進位制數 |
1, 12 |
%p |
區域設定的 AM 或 PM |
AM, PM |
%M |
分鐘,為零填充的十進位制數 |
01, 59 |
%-M |
分鐘,為十進位制數 |
1, 59 |
%S |
秒,為零填充的十進位制數 |
01, 59 |
%-S |
秒,為十進位制數 |
1, 59 |
%c |
區域設定的適當日期和時間表示 |
Mon Sep 30 07:06:05 2022 |
strptime()方法使用方法如下:
>>> from datetime import datetime >>> dt="Thu February 3 2022 11:35:5" >>> code="%a %B %d %Y %H:%M:%S" >>> datetime.strptime(dt, code) datetime.datetime(2022, 2, 3, 11, 35, 5)
現在可以使用write_datetime()方法將此datetime物件寫入工作表。
示例
在以下示例中,datetime物件以不同的格式寫入。
import xlsxwriter from datetime import datetime wb = xlsxwriter.Workbook('hello.xlsx') worksheet = wb.add_worksheet() dt="Thu February 3 2022 11:35:5" code="%a %B %d %Y %H:%M:%S" obj=datetime.strptime(dt, code) date_formats = ( 'dd/mm/yy', 'mm/dd/yy', 'dd m yy', 'd mm yy', 'd mmm yy', 'd mmmm yy', 'd mmmm yyy', 'd mmmm yyyy', 'dd/mm/yy hh:mm', 'dd/mm/yy hh:mm:ss', 'dd/mm/yy hh:mm:ss.000', 'hh:mm', 'hh:mm:ss', 'hh:mm:ss.000', ) worksheet.write('A1', 'Formatted date') worksheet.write('B1', 'Format') row = 1 for fmt in date_formats: date_format = wb.add_format({'num_format': fmt, 'align': 'left'}) worksheet.write_datetime(row, 0, obj, date_format) worksheet.write_string(row, 1, fmt) row += 1 wb.close()
輸出
使用Excel開啟時,工作表如下所示:
