6

これは、ここで説明した問題と非常によく似た問題です。ただし、水平に行う必要があり、日付で問題が発生します。私はMacを使っています。

これは私の .xlsx ドキュメントの写真です。最初の 3 行のようなエントリがたくさんあるので、最後の 3 行として CSV に変換したいと考えています。しかし、私の問題はこれです:

  • 2012-08-16 (A1) は 41137 (A4) になります
  • 08:00 から 09:00 までの私のセッションは 01:00 時間の長さです (H1 と I1 と J1 を参照) がめちゃくちゃになります – ,0,333333333333333,0,375,
  • 09:00 から 10:00 までの私のセッションには、上の問題と同じ問題がありますが、乱雑な数字が異なるだけです。

私の最終目標は、.xlsx タイムシートをtogglにエクスポートすることです

PS 実際の問題につながる可能性のあるマイナーな問題:

  • A1 2012-08-16 は 16-8-12 になります
  • J1 01:00:00 は 01:00 になり、08:00:00 は 08:00 になり、09:00 は 08:00:00 になります。
4

1 に答える 1

8

最も簡単な解決策は、単に「名前を付けて保存...」を選択し、ファイルタイプとしてCSVを選択することです。

自動化された方法でこれを実行しようとしていると思います。次の仮定が当てはまる場合:

  • Windowsプラットフォームを使用しています
  • Excelがインストールされています

「XLSX」を「CSV」に変換する最も簡単な方法は、VBスクリプトを少し使用することです。

Set objArgs = WScript.Arguments
InputName = objArgs(0)
OutputName = objArgs(1)
Set objExcel = CreateObject("Excel.application")
objExcel.application.visible=false
objExcel.application.displayalerts=false
set objExcelBook = objExcel.Workbooks.Open(InputName)
objExcelBook.SaveAs OutputName, 23
objExcel.Application.Quit
objExcel.Quit

これを次のように呼び出します。

wscript script.vbs C:\...\file.xlsx C:\...\file.csv

更新: Perlスクリプトで変換を実行する この投稿を見てください。

Update 2 どうやら、VBAコードはパスに関して厄介です。修飾されていないパスは、ドキュメントディレクトリに関連して解決されます。したがって、再現性のある結果を得るには、入力ファイルと出力ファイルへのフルパスを使用します。

于 2012-08-16T19:27:44.067 に答える