作者rxiang (rxiang)
看板Perl
標題Re: [問題] 請問Excel 字串寫入問題
時間Wed May 24 02:05:25 2017
※ 引述《yaya80306 (赫)》之銘言:
: 請問一下
: 在linux環境下用perl 建立excel檔
: 若要在某一欄寫入“10E2”
: 打開excel 檔總會顯示1000而不是10E2
: 我已經把excel 欄位設定成文字格式
: 依舊變成1000
: 也嘗試過 "'10E2" 和 " 10E2" 但我不想要出現' 或空白 ,因為會導致其它自動化程式
: 異常
: 請問各位大大有無正確寫法
: 非常感謝
Hi~
這是 Excel 設定的問題,
所以你必須先了解 Excel 的格式
像是 0.00E+00 就是 MS 官方推薦的科學記號格式
雖然你沒講明說用什麼 module, Excel 格式等等~
所以我假設你使用 Spreadsheet::WriteExcel 這個 module (file extension: .xls)
PS 若 extension 是較新的 .xlsx 就用 Excel::Writer::XLSX
不過不少公司沒用這麼新的啦XD
提供以下 snippet,請注意設定 format 的部分: (cells 位置自訂囉)
================================================================
my $workbook = Spreadsheet::WriteExcel->new('output.xls');
# Add a worksheet
my $worksheet = $workbook->add_worksheet();
# Define your format
my $format = $workbook->add_format(); # Add a format
$format->set_num_format('00E0');
# Defined your cells
$worksheet->write_number('A1', 10E2, $format);
$worksheet->write_number('A2', 10E20, $format);
================================================================
如果設定還是出現問題,也許你可考慮多寫一個 Excel Parser,
在執行其他程式前去把數字轉換回來XD
Refs:
MS官方說明 如何控制及瞭解 Excel 中儲存格格式對話方塊的設定
https://goo.gl/NTr0t0
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.212.72
※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1495562728.A.8B6.html
推 yaya80306: 感謝你專業的回覆,我的perl是5.8.8,沒有到很新版, 05/24 07:40
→ yaya80306: 待會來試試看,感謝感謝 05/24 07:40