質問する
0

日付型セルが、LibreOfficeで保存した後Microsoft OfficeのEXCELで開くと形式が変わる不具合

質問日 2017-11-02 16:45:36 +0100

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

EXCELで作成したファイルの日付セルYYYY/MM/DDで表示されているファイルを、LibreOfficeのCALCで開くと同様にYYYY/MM/DDの形式で表示される。 この状態で、何もせずLibreOfficeのCALCで保存し、EXCELで開くと先ほどの、日付セル部分のローケル(国または地域)が日本でなく、オランダ語やインド語(バージョンによって異なる?)で設定されている。

例)LibreOfficeで開き、日付セルのローカル:日本語、2017/11/03表示されている状態で保存 →Microsoft Office 2003で開きなおす、ローカル情報が オランダ語(自環境で確認) →Microsoft Office 2010で開きなおす、ローカル情報が インド語(仕事場環境で確認) となり、11/03/2017と表示されるようになる

5.4.2.2とその前の5.4.?のバージョンで確認できています。 ※.xlsx、.xlsファイル形式で保存時 (他にも、xls形式保存時、チェックボックスが消える等もあります) 上記のような事が発生しないバージョンや対策方法をご存知の方いらっしゃったら、ご教示願いませんでしょうか。       2017/11/05 edit.

edit retag flag offensive close merge delete

1 Answer

0

回答日 2017-11-06 12:02:19 +0100

himajin100000 のGravatar画像

updated 2017-11-06 12:04:27 +0100

解決策不明のメモ書き。

  1. LibreOfficeを起動し、メインメニューのTools->Optionsと辿り、左側ツリーのLanguage Settings->Languagesと辿った右側、Locale SettingをJapaneseにして、念のため、LibreOfficeを再起動。
  2. Calcを起動し、A1セルに 2017-11-06を入力する。文字列ではなく日付として認識されるため、右詰めで表示される。
  3. このセルのコンテキストメニューからFormat Cellsを選択。
  4. NumbersタブにはFormat Codeがある。ここにYYYY/MM/DDを入力、OKボタンでこのダイアログを閉じる。
  5. A1の表示が2017/11/06になる。
  6. このファイルをtest.xlsxとして保存。
  7. このファイルをExcel 2016で開く。
  8. A1には11/06/2017と表示されている。保存しないで終了。(LibreOfficeの責任かExcelの責任かわからなくなる)
  9. さて、このtest.xlsxのバックアップを取った上で、test.zipなどとリネームし、展開。
  10. xlフォルダにstyles.xmlというファイルがあるので、これをテキストエディタで開く。
  11. numFmt要素の一つに以下のような属性を見つける。 (Excelの影響を受けていないのでLibreOfficeの責任)
    formatCode="MM/DD/YYYY"
  12. 属性値をYYYY/MM/DDに書き換える。
  13. 書き換えたものをもう一度圧縮し直し、もとのようにリネームする。
  14. Excel 2016でこのファイルを開き、YYYY/MM/DDの順になっていることを確認。例によって保存はしない。
  15. この属性を設定しているコード、及びその値がどこから来ているかをopengrok上で頑張って探す。 https://opengrok.libreoffice.org/xref...
    https://opengrok.libreoffice.org/xref...
  16. 再現条件を考える。「ハードコードされているen_US」と「年月日の標準的な並び順が異なるロケール(確認してないけど多分日本語も!)」において、変更前の日付各部の区切り子がハイフンでないときに再現する? 例えばロケールが最初からen_USなら再現しないとか?(代わりに「元号」とかに影響が出ることもあるのかも。未検証。)
  17. まで考えて、エンジニアサイドではなくエンドユーザーサイドの解決策とはいえず、難度も手間もかかるため、質問者によっては無言で質問を閉じられたりする状況を想像して回答するか躊躇ったり、恐れおののいたりする。いつものように。

一応、LibreOfficeでxlsx形式で保存してExcelで読んだとき、元のフォーマットと異なる形で表示されるケースを、検討してみたが、

ローカル情報が オランダ語
ローカル情報が インド語

Excel 2016上で確認する方法が分からなかった。見当ハズレであれば申し訳ない。

Version: 6.0.0.0.alpha1+ (x64)
Build ID: dae6ba564fcf20299b7a560aeb346efc84364d41
CPU threads: 4; OS: Windows 10.0; UI render: GL;
TinderBox: Win-x86_64@42, Branch:master, Time: 2017-11-01_01:54:14
Locale: ja-JP (ja_JP); Calc: CL

edit flag offensive delete link もっと

Comments

himajin100000さん、検証ありがとうございました。 自分所の環境だけで発生しているものでは無いという事が確認できただけでも、ありがたいです。 先にググって調べても、同様の件でQ/Aが出ている様子がありませんでしたので。

同じ状況で困ってしまっている、別のユーザの方々も(たぶん)いると思いますので・・・ ここに足跡を残しておきます。

>Excel 2016上で確認する方法が分からなかった。

2016版が手元にありませんので、正確にはわかりませんが、従来のEXCELなら、書式形式から確認ができていました。 日付セル上で、右クリックメニュー「表示形式」とか、ありませんでしょうか(?)

LibreOfficeを使っての回避策が見つからなかった為、マイクロソフトのOfficeOnlineで急場を凌いでいましたが、このまましばらく使う事になりそうです。※たぶん、Office365 2016のミニ版な感じです。

本当は英語で、バグ報告した方がいいんでしょうけど、英語力が(笑)

ありがとうございました。

てふてふ のGravatar画像てふてふ ( 2017-11-08 15:45:06 +0100 )edit

メモってたの忘れたバグレポ
https://bugs.documentfoundation.org/s...

himajin100000 のGravatar画像himajin100000 ( 2017-11-13 22:43:39 +0100 )edit

TODO: その後の経過がどうなったか検証したい。(面倒なので絶賛先送り中)
RESOLVED DUPLICATE of bug 113889だがその113889で
https://bugs.documentfoundation.org/s...

https://bugs.documentfoundation.org/s...
で取り込まれているようにみえるから。

himajin100000 のGravatar画像himajin100000 ( 2018-02-15 20:33:07 +0100 )edit
ログイン/サインアップして回答する

質問ツール

2 followers

Stats

Asked: 2017-11-02 16:45:36 +0100

Seen: 140 times

Last updated: Nov 06 '17