過去の桐井戸端BBS (桐ver.5)
17572 桐v2やv5のデータをExcelへ変換したい 河野祐美 2002/10/14-20:14
桐V2と桐V5を使用して会社のデータを昔から大量に保存してきています。
その中のあるデータを お客様へExcelにして至急ご提供申し上げなければならないのですが
素人で変換できるソフトご案内いただけますでしょうか?
よろしく お願い申し上げます。
17573 Re:Excelへの変換 麻呂 2002/10/14-20:51
記事番号17572へのコメント
河野さんこんばんは。
桐のデータをエクセルに書き出すには、
CSVで書き出し、エクセルで立ち上げエクセルファイルに変換すればいかがですか。
17574 Re:Excelへの変換 幅田 2002/10/14-21:18
記事番号17573へのコメント
>桐のデータをエクセルに書き出すには、
>CSVで書き出し、エクセルで立ち上げエクセルファイルに変換すればいかがですか。

桐v2や桐v5にはcsv書き出しはありません。
k3フォーマットやテキストで書き出す方法もありますが、項目名は書き出されません。

桐v8をお持ちでしたら、桐v5の表なども読み込むことができますし、
csv書き出しで項目名をつけて書き出すこともできます。

桐v8をお持ちでない場合、
お急ぎのようですので、桐v8の入手が間に合わないのでしたら
管理工学のホームページから
http://www.k3-soft.com/
とりあえず桐v8の体験版をダウンロードすれば、いかがでしょう?
90日間、製品版と同じ機能を使うことができます。

なお、10月18日発売予定の桐v9でしたら
ズバリ「エクセル書き出し」の機能がついていますので、
桐v5の表を読み込んでそのままエクセル形式で書き出すことができるのですが・・
発売までは待てないのかな?

もう少し前だったら、桐v9のβ版もダウンロードできたのですが、今はできません。

桐v9体験版のダウンロードもできるようにしてほしいですね。>k3さん

17576 CSV変換の一括処理 佐田 守弘 2002/10/15-00:02
記事番号17572へのコメント
河野祐美さん
かつて、桐ver.5で項目名付でCSVファイルを書き出す桐の一括処理を作成した事があります。
私のサイトにも掲載してあると思いますが、探すのが大変でしたら、
ベクターの以下のサイトからダウンロードしてみて下さい。
(ここには確実にあります)
http://www.vector.co.jp/soft/dos/business/se064046.html

佐田守弘(KS-00119)


17578 Re:Excelへの変換 hidetake 2002/10/15-06:34
記事番号17574へのコメント
相手に項目名が必要かどうかは別にして桐のデータを Excel のデータに変換する場合,
K3 や CSV 等のテキストファイルに落として,それを Excel 読み込ます等の操作が必要です.

その際にやっかいなのは,K3 や CSV はデータ型を持たない単なるテキストデータなので,
データによっては思いもよらない形式に変換される場合があります.


"95-01" -> Jan 95 / "1/5" ->1月5日


特に Excel との交換で良く使われる CSV形式ですと,Excel もその形式を直にサポートしているので
ダブルクリックだけでも Excel で開けるようになっているのが普通で,そのまま読み込んでしまいます.

中身的には CSV はファイルでも,拡張子が CSV 以外ですと,ウィザードの画面にになり,
項目毎にデータ型を指定する事が可能です.

特にデータで時間型に間違われそうなデータが入っていない時は CSV 形式,もしくはK3 形式のファイルの拡張子を
CSV にリネームして Excel に読み込ませれば良いでしょう.

そうでない場合,CSV で書き出して拡張子を TXT や DAT に変更したり,K3 ファイルそのものを使った方が良いと思います.

ただ,K3 ファイルを Excel で読み込ますと最終行にゴミがつきますので,無視するか,
相手にとってじゃまになる場合は手動で削除する必要があります.

CSVファイルを高速に読み込む
http://www2.moug.net/cgi-bin/technic.cgi?exopr+TI06010017

もし,桐9 がでるまで余裕があるのなら
桐9 を待った方が簡単かも?


17579 Re:Excelへの変換 hidetake 2002/10/15-06:47
記事番号17578へのコメント
もし桐から自動化して Excel ファイルを作成したい場合
次のような VBS で可能です.
桐のシステムコマンドで実行させます.

ただし,K3 ファイル,もしくは,CSV ファイルは事前に作っておく事と,
そのパソコンには Excel はインストールしてあり,WSH (VBS) が実行可能である事を前提とします.

1つ目の方法
(ファイルを CSVファイルとして Excel で読み込む)

==== csv2xls.vbs ==================================
使用方法: csv2xls.vbs "x:\path\txt.txt" "x:\path\excel.xls"
---------------------------------------------------
Dim arg, csv, xls, fs, xl, book, sheet
Set arg = WScript.Arguments
If Arg.Count < 2 Then
WScript.Quit
End If

csv = arg(0)
xls = arg(1)

Set fs = Wscript.CreateObject("Scripting.FileSystemObject")
If fs.FileExists(xls) = True Then
fs.DeleteFile xls,True
End If

Set xl = Wscript.CreateObject("Excel.Application")
xl.Visible = Fales
xl.DisplayAlerts = Fales
Set book = xl.WorkBooks.Open(csv,,,2)
Set sheet = book.worksheets(1)
Sheet.Activate
book.SaveAs xls, 39
’book.SaveAs "x:\filename.ext", xlExcel5
’xlCSV = 6
’xlCSVMac = 22
’xlCSVMSDOS = 24
’xlCSVWindows = 23
’xlExcel5 = 39
’xlExcel9795 = 43
’xlHTML = 44
’xlWorkbookNormal = -4143
book.Close True
xl.Quit

Set xl = Nothing
Set arg = Nothing
Set fs = Nothing
===================================================


〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
2つ目の方法
(ファイルを CSVファイルとして Excel で読み込む)
(但し," で囲まれたデータは文字列として扱う!)

==== csv2xls2.vbs ==================================
使用方法: csv2xls2.vbs "x:\path\txt.txt" "x:\path\excel.xls"
---------------------------------------------------
Dim arg
Set arg = WScript.Arguments
If Arg.Count < 2 Then
WScript.Quit
End If

Dim fs,txt,xl,book,sheet
k3=arg(0)
xls=arg(1)

Set fs = Wscript.CreateObject("Scripting.FileSystemObject")
Set txt = fs.OpenTextFile(k3)

Dim strLine, strData, i, j, re, mc, d1, d2

Set re = CreateObject("VBScript.RegExp")
re.Global = True

Set xl = Wscript.CreateObject("Excel.Application")
xl.Visible = Fales
Set book = xl.WorkBooks.Add
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(xls) = True Then
fs.DeleteFile xls,True
End If
book.SaveAs xls
Set book = xl.WorkBooks.Open(xls)
Set sheet = book.worksheets(1)
Sheet.Activate

i = 0

Do until txt.AtEndOfStream
strLine = txt.ReadLine
If strLine = chr(26) Then
Exit Do
End If
re.Pattern = "(""([^""]|"""")*""|[^,]*),"
mc = strLine & ","
mc = re.Replace(mc,"$1"+chr(1))
strData = Split(mc, chr(1))
For j = 0 To UBound(strData)
mc = strData(j)
d1 = mc
re.Pattern = "^"""
mc = re.Replace(mc,"")
re.Pattern = """$"
mc = re.Replace(mc,"")
re.Pattern = """"""
mc = re.Replace(mc,"""")
mc = Replace(mc,"¶",chr(10))
d2 = mc
If d1 <> d2 Then
sheet.Cells(i+1,j+1).NumberFormat = "@"
End if
sheet.Cells(i+1,j+1) = mc
Next
Erase strData
i = i + 1
Loop

txt.Close
book.Close True
xl.Quit
Set xl = Nothing
Set txt = Nothing
Set fs = Nothing
Set re = Nothing
Set arg = Nothing
===================================================


17580 Re:Excelへの変換 hidetake 2002/10/15-06:49
記事番号17579へのコメント
>’book.SaveAs "x:\filename.ext", xlExcel5
>’xlCSV = 6
>’xlCSVMac = 22
>’xlCSVMSDOS = 24
>’xlCSVWindows = 23
>’xlExcel5 = 39
>’xlExcel9795 = 43
>’xlHTML = 44
>’xlWorkbookNormal = -4143

ここの掲示板って,シングルクォーテーションを通さないのだっけ?
上のはコメントだから行毎削除するか,半角のシングルクォーテーションに変更してください.

なお,桐側で呼び出すシステムコマンドの部分は次のような感じになります.

/*--------------------*/
名札 Excel変換 */
/*--------------------*/
&COMMAND="WSCRIPT.EXE" \
,&OPTION=&DATAPATH+"CSV2XLS.VBS" \
+" " \
+""""+&NAME+"""" \
+" " \
+""""+&WORK+""""

cond (#fsize(&WORK)>=0) \
ファイル削除 &WORK,終了状態=&RET

システム &COMMAND \
,&OPTION \
,起動フォルダ=&DATAPATH \
,自動クローズ=する \
,フルスクリーン表示=しない \
,&num

cond (#fsize(&NAME)>=0) \
ファイル削除 &NAME,終了状態=&RET

return


17581 Re:Excelへの変換 hidetake 2002/10/15-06:54
記事番号17580へのコメント
なお,csv2xls2.vbs の方は正規表現を使っているので極端に遅いです.
大きなファイルですと覚悟して実行して下さい! (;_;)

" で囲まれた部分は文字列にセルの書式を変更するので
前0(ゼロ)のついた文字列なども,桐側と同じように表現できるはずです.
ただし,項目内改行には対応しておりませぬ.


それから・・・
やっぱ桐でも正規表現が使いたいです! > kthree 様 _o_



17586 Re:Excelへの変換 麻呂 2002/10/15-12:10
記事番号17574へのコメント
桐v5はCSVの書き出しなかったですか?
それはすみませんでした。
Win桐ばかりつかっているのもで。

17589 Re:Excelへの変換 河野祐美 2002/10/15-12:53
記事番号17572へのコメント
みなさま さっそくにご丁寧に有難う御座いました。
ダウンロードしてしてみます。
河野祐美

戻る