2016-01-13 53 views
1

我用perl模塊Text::CSV_XS創建了一個csv文件。 下面是相關代碼:用Perl生成的csv文件破碎

open (my $csv_fh, '>', $tmp_file) or die("Unable to open CSV '$tmp_file' for write"); 

my $csv = Text::CSV_XS->new({'binary' => 1, 'sep_char' => $config->{'csv'}->{'sep_char'}, 'eol' => "\015\012"}) or die(Text::CSV->error_diag()); 

$csv->print($csv_fh, ["ID", "ASEITE", "ERDAT", "QUELLE", "AUSGABE", "RESSORT", "AUTNR", "NAME", "ANZHLZEIL", "ANZHLZEICH", "UEBER", "TEXTSP", "ART", "BETRAG", "GRUND", "FEST", "STATUS", "SLEVEL"]); 

$csv->print($csv_fh, ["A","1","AB","A-5","01","12345","12345","NAME","0","0","Testtext","Testtext2","1","45","","","0",""]); 

close $csv_fh; 

當我嘗試使用Microsoft Excel我得到的文件擴展名(CSV)不將文件的格式/結構相匹配的消息打開file。 我被問到如果我信任源。點擊「確定」後,我收到有錯誤的信息。再次點擊「確定」。之後,我可以看到csv標題加上文件的唯一行。一切看起來都如預期。

我的問題:爲什麼我得到這個錯誤消息打開文件?我創建的文件有什麼問題?

回答

3

當您打開Excel中前2個字符爲「ID」的文本文件時,它認爲它是SYLK文件,因此會發出此警告。這是Excel的一個非常古老的問題。例如,請參見this Microsoft Support page。如果您將報價放在ID左右或更改其大小寫,該錯誤將消失。

+0

就是這樣,謝謝你的回答 – Thariama