後でテンプレートとして使用するために、最初の行にプレーン テキストを含む既存の Excel ファイルを使用しています。次に、いくつかの列形式を通貨、会計、日付などに変更しました。現在、このファイルを phpExcel にロードし、データベースからこのファイルにデータを入力して、新しい名前で保存しています。ただし、保存されたファイルでは、新しく作成された行のすべてのセルがマークされているように見えますgeneral
が、元のプレーン テキスト行にはまだ正しい形式が割り当てられているようです。
私のコード:
$xl_tmplt = ((isset($_REQUEST['excel_template']) && $_REQUEST['excel_template'] != "")
? $_REQUEST['excel_template']
: "report_tab1.xlsx");
require_once 'includes/classes/PHPExcel/PHPExcel.php';
$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
$cacheSettings = array('memoryCacheSize' => '8MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
$tmp_workbook = PHPExcel_IOFactory::load($tmp_folder_path . '/templates/' . $xl_tmplt);
$tmp_workbook->setActiveSheetIndex(0);
$sheet = $tmp_workbook->getActiveSheet();
$sheet->fromArray($arr, '', 'A2');
$objWriter = PHPExcel_IOFactory::createWriter($tmp_workbook, 'Excel2007');
$objWriter->save($tmp_folder_path . "output/$filename");
$result['type'] = "success";
$result['msg'] = "The file was successfully created.";
事前定義された列形式の Excel ファイルを読み込んで、それを使用して新しい Excel を生成する方法はありますか? または、生成中に列またはセル範囲のフォーマットを変更/設定しますか?
PS: 私は Excel があまり得意ではないので、列の書式を間違った方法で設定した可能性があります。基本的に、列を選択する列の文字をクリックして、上のドロップダウンでフォーマットを変更しました。これが間違っている場合は、お知らせください。