回答編集履歴

4

誤字修正

2022/10/03 08:11

投稿

Bull
Bull

スコア986

test CHANGED
@@ -64,7 +64,7 @@
64
64
  "バナナ"],
65
65
  "数量":[50, 20, 60, 30],})
66
66
  # df["日付"] = pd.to_datetime(df['日付'])
67
- df.to_excel('Test844.xlsx')
67
+ df.to_excel('Sample1.xlsx')
68
68
  ```
69
69
  このようなプログラムで作成しました。
70
70
  コメントをはずせば日付は文字列ではなく、Datetime 型で作成されます。

3

コードの追記

2022/10/03 08:09

投稿

Bull
Bull

スコア986

test CHANGED
@@ -26,3 +26,45 @@
26
26
 
27
27
  wb.save('Test.xlsx')
28
28
  ```
29
+
30
+ ---
31
+ 以下のようなワークシートを
32
+ ![処理前のワークシート](https://ddjkaamml8q8x.cloudfront.net/questions/2022-10-03/24383511-d553-4713-bd1e-757ac18fec95.png)
33
+
34
+ ```
35
+ import openpyxl
36
+ import datetime
37
+
38
+ wb = openpyxl.load_workbook('Sample1.xlsx')
39
+ ws = wb.active
40
+
41
+ for r in range(2, 6):
42
+ cell = ws.cell(row=r, column=2)
43
+ dt = cell.value
44
+ cell.value = datetime.datetime.strptime(dt, '%Y-%m-%d')
45
+ cell.number_format = 'yyyy/mm/dd'
46
+
47
+ wb.save('Sample2.xlsx')
48
+ ```
49
+ このようなプログラムで処理すると、
50
+ ![処理後のワークシート](https://ddjkaamml8q8x.cloudfront.net/questions/2022-10-03/e0224f48-49dc-49a7-a2f3-7c2f72afbf56.png)
51
+ このようになります。
52
+
53
+ なお、処理前のワークシートは
54
+ ```
55
+ import pandas as pd
56
+
57
+ df = pd.DataFrame({"日付":["2021-11-29",
58
+ "2021-11-30",
59
+ "2021-12-01",
60
+ "2021-12-02"],
61
+ "商品名":["りんご",
62
+ "ブドウ",
63
+ "みかん",
64
+ "バナナ"],
65
+ "数量":[50, 20, 60, 30],})
66
+ # df["日付"] = pd.to_datetime(df['日付'])
67
+ df.to_excel('Test844.xlsx')
68
+ ```
69
+ このようなプログラムで作成しました。
70
+ コメントをはずせば日付は文字列ではなく、Datetime 型で作成されます。

2

表記の改善

2022/10/02 00:54

投稿

Bull
Bull

スコア986

test CHANGED
@@ -4,6 +4,7 @@
4
4
 
5
5
  データフレームを使用しているのであれば、以下が参考になるかと思います。
6
6
  [pandasのto_datetimeでobject型からdatetime型に変換する](https://datatechlog.com/pandas_to_datetime/)
7
+
7
8
  ---
8
9
  "openpyxl" では標準ライブラリの`datetime`を使用します。
9
10
  以下のコードを実行してみてください。

1

コードの追記

2022/10/02 00:53

投稿

Bull
Bull

スコア986

test CHANGED
@@ -4,3 +4,24 @@
4
4
 
5
5
  データフレームを使用しているのであれば、以下が参考になるかと思います。
6
6
  [pandasのto_datetimeでobject型からdatetime型に変換する](https://datatechlog.com/pandas_to_datetime/)
7
+ ---
8
+ "openpyxl" では標準ライブラリの`datetime`を使用します。
9
+ 以下のコードを実行してみてください。
10
+ ```
11
+ import openpyxl
12
+ import datetime
13
+
14
+ wb = openpyxl.Workbook()
15
+ ws = wb.active
16
+
17
+ cell1 = ws.cell(row=1, column=1)
18
+ cell1.value = '2022-09-30 15:04:20'
19
+ cell1.number_format = 'yyyy/mm/dd'
20
+
21
+ cell2 = ws.cell(row=2, column=1)
22
+ dt = '2022-10-01 18:32:41'
23
+ cell2.value = datetime.datetime.strptime(dt, '%Y-%m-%d %H:%M:%S')
24
+ cell2.number_format = 'yyyy/mm/dd'
25
+
26
+ wb.save('Test.xlsx')
27
+ ```