2012-08-16 10 views
6

これは、hereと非常によく似た問題です。しかし、私は水平にする必要があり、私の問題はの日付で発生します。私はMacにいる。XLSXをCSVに正しく変換する

Thisは、私の.xlsxドキュメントの画像です。私は最初の3行のもののようなエントリをたくさん持っている、私は最後の3つのものとしてそれらをCSVに変換したい。 H1を参照してください(08:00〜 9時まで私のセッションは、1:00時間の長さである(A1)で

  • 2012年8月16日には(A4で)41137となり
  • :しかし、私の問題はこれですそしてI1及びJ1)台無しになる - 、0,333333333333333,0,375、
  • マイセッション9時から10時までは厄介番号が 異なるだけで、上記の一つとして 同じ問題があります。私の最終目標は、toggl

    P.S.に私の.xlsxタイムシートをエクスポートすることです

  • A1を2012年8月16日は、16 8月 - 12
  • J1 1時00分00秒01:00になると、同様8時00分00秒になるように次のようになります。実際のものにつながる可能性がマイナーな問題08:00と09:00は08:00:00となります。

答えて

7

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

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

  • あなたは、Windowsプラットフォーム上で
  • エクセルだ

をインストールされている「CSV」に「XLSX」を変換する最も簡単な方法は、VBのビットでありますスクリプト:

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

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 

は、これを起動します

更新: このpostingをご覧になり、Perlスクリプトで変換を実行してください。

更新2 明らかに、VBAコードはパスに関して厄介です。正規化されていないパスは、ドキュメントディレクトリを基準に解決されます。したがって、再現性のある結果を得るには、入力ファイルと出力ファイルのフルパスを使用してください。

+0

私はMacです。はい、私はそれを自動化したいと思っています。 – jacob

+0

私はこれを好奇心から試して、 'file.xlsx 'が見つかりませんでした。ファイル名のスペルを確認し、ファイルの場所が正しいことを確認してください。コマンドプロンプトから、すべてのファイルがあるディレクトリ内からコマンドを実行しました。 – cusman

+0

file.xlsxへのフルパスを使用してみてください。 –

関連する問題