※ 引述《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