teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答追加

2021/05/21 03:21

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -5,17 +5,26 @@
5
5
  理由は、エクセルで入力したときの"'"はデータではないからです。
6
6
  [先頭の「'」(シングルコーテーション)を削除する](http://officetanaka.net/excel/function/tips/tips15.htm) をお読みください。
7
7
 
8
- なぜ、シングルクォートが入った状態で書き込みたいのかの理由が、別のところから取ってきた文字列の先頭がシングルーテーションであるという問題であれば
8
+ なぜ、シングルクォートが入った状態で書き込みたいのかの理由が、別のところから取ってきた文字列の先頭がシングルクォーテーションであるという問題であれば
9
9
  ```python
10
10
  >>> y = "'16-1"
11
11
  >>> print(y[1:])
12
12
  16-1
13
13
  ```
14
- を使って、先頭のシングルーテーションを削除してから
14
+ を使って、先頭のシングルクォーテーションを削除してから
15
15
 
16
16
  ```python
17
17
  sheet4.cell(row=1 + r, column=1).value = y[1:]
18
18
  ```
19
19
  とすれば期待通りの結果になります。
20
20
 
21
- その他の理由でしたら、その理由を質問欄に追加して下さい。
21
+ その他の理由でしたら、その理由を質問欄に追加して下さい。
22
+
23
+ シングルクォーテーションなしで書き込んだ場合、
24
+ 「2桁年を使用した日付文字列」と判断されてしまうのかエラーが出てしまいます。
25
+
26
+ とのことですが、エラーではなく警告ですね。
27
+ エクセルで別のセルに「'16-1」を入力しても同じ警告が出るので、シングルクォーテーションは問題の解決にはならないと思います。
28
+ エクセルの方で書式設定を文字列にしてみましたがそれでも同じ警告が出ました。
29
+
30
+ 姑息な手段ですが" 16-1"というように全角空白で始まる文字列だと、あまり見映えが変わりませんし、日付文字列と解釈されることはありませんでした。