From 23208e3eacdb2eaead02ae3b703f47f8e9f64e63 Mon Sep 17 00:00:00 2001 From: hgc Date: Mon, 23 Dec 2024 14:27:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/service/GoogleAdsReportService.php | 55 +++++++++++++++++++------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/app/service/GoogleAdsReportService.php b/app/service/GoogleAdsReportService.php index 9806cd8..1241841 100644 --- a/app/service/GoogleAdsReportService.php +++ b/app/service/GoogleAdsReportService.php @@ -117,10 +117,19 @@ class GoogleAdsReportService // 获取所有广告数据 $ads = $query->select(); + // 创建一个新的 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); + $ad_status = [ + 0 => 'UNSPECIFIED', + 1 => 'UNKNOWN', // UNKNOW + 2 => 'ENABLED', // ENABLED + 3 => 'PAUSED', // PAUSED + 4 => 'REMOVED', // REMOVED + ]; + // 设置表头 $sheet->setCellValue('A1', 'Ad ID'); $sheet->setCellValue('B1', 'Ad Status'); @@ -146,12 +155,12 @@ class GoogleAdsReportService $row = 2; // 从第二行开始 foreach ($ads as $ad) { $sheet->setCellValueExplicit('A' . $row, (string)$ad->ad_id, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); // 设置 ad_id 为文本 - $sheet->setCellValue('B' . $row, $ad->ad_status); - $sheet->setCellValueExplicit('C' . $row, $ad->ad_name); // 直接设置 ad_name - $sheet->setCellValueExplicit('D' . $row, $ad->campaign_name); // 直接设置 ad_name - $sheet->setCellValueExplicit('E' . $row, $ad->ad_group_name); // 直接设置 ad_name - $sheet->setCellValueExplicit('F' . $row, $ad->delivery); // 直接设置 ad_name - $sheet->setCellValue('G' . $row, $ad->conversions); + $sheet->setCellValue('B' . $row, $ad_status[$ad->ad_status]); + $sheet->setCellValue('C' . $row, $ad->ad_name); // 直接设置 ad_name + $sheet->setCellValue('D' . $row, $ad->campaign_name); // 直接设置 ad_name + $sheet->setCellValue('E' . $row, $ad->ad_group_name); // 直接设置 ad_name + $sheet->setCellValue('F' . $row, $ad->delivery); // 直接设置 ad_name + $sheet->setCellValue('G' . $row, $ad->results); $sheet->setCellValue('H' . $row, $ad->reach); $sheet->setCellValue('I' . $row, $ad->revenue); $sheet->setCellValue('J' . $row, $ad->roas); @@ -284,6 +293,14 @@ class GoogleAdsReportService $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); + $campaignsStatus = [ + 0 => 'UNSPECIFIED', // UNSPECIFIED + 1 => 'UNKNOWN', // UNKNOWN + 2 => 'ENABLED', // ENABLED + 3 => 'PAUSED', // PAUSED + 4 => 'REMOVED', // REMOVED + ]; + // 设置表头 $sheet->setCellValue('A1', 'Campaign ID'); $sheet->setCellValue('B1', 'Status'); @@ -302,10 +319,10 @@ class GoogleAdsReportService foreach ($campaigns as $campaign) { //使用 setCellValueExplicit 显式设置为文本格式 $sheet->setCellValueExplicit('A' . $row, (string)$campaign->campaign_id, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); // 设置为文本格式 - $sheet->setCellValue('B' . $row, $campaign->campaign_status); - $sheet->setCellValueExplicit('C' . $row, $campaign->campaign_name); - $sheet->setCellValueExplicit('D' . $row, $campaign->delivery); // 直接设置 ad_name - $sheet->setCellValue('E' . $row, $campaign->conversions); + $sheet->setCellValue('B' . $row, $campaignsStatus[$campaign->campaign_status]); + $sheet->setCellValue('C' . $row, $campaign->campaign_name); + $sheet->setCellValue('D' . $row, $campaign->delivery); // 直接设置 ad_name + $sheet->setCellValue('E' . $row, $campaign->results); $sheet->setCellValue('F' . $row, $campaign->reach); $sheet->setCellValue('G' . $row, $campaign->revenue); $sheet->setCellValue('H' . $row, $campaign->roas); @@ -464,6 +481,14 @@ class GoogleAdsReportService $sheet->setCellValue('K1', 'Profit'); $sheet->setCellValue('L1', 'Spend'); + $ad_groups_status = [ + 0 => 'UNSPECIFIED', // UNSPECIFIED + 1 => 'UNKNOWN', // UNKNOWN + 2 => 'ENABLED', // ENABLED + 3 => 'PAUSED', // PAUSED + 4 => 'REMOVED', // REMOVED + ]; + // 填充数据 $row = 2; @@ -471,11 +496,11 @@ class GoogleAdsReportService // 使用 setCellValueExplicit 显式设置为文本格式 $sheet->setCellValueExplicit('A' . $row, (string)$adGroup->ad_group_id, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); // 设置为文本格式 // $sheet->setCellValueExplicit('B' . $row, (string)$adGroup->campaign_id, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); - $sheet->setCellValue('B' . $row, $adGroup->ag_group_status); - $sheet->setCellValueExplicit('C' . $row, $adGroup->ad_group_name); - $sheet->setCellValueExplicit('D' . $row, $adGroup->campaign_name); - $sheet->setCellValueExplicit('E' . $row, $adGroup->delivery); // 直接设置 ad_name - $sheet->setCellValue('F' . $row, $adGroup->conversions); + $sheet->setCellValue('B' . $row, $ad_groups_status[$adGroup->ad_group_status]); + $sheet->setCellValue('C' . $row, $adGroup->ad_group_name); + $sheet->setCellValue('D' . $row, $adGroup->campaign_name); + $sheet->setCellValue('E' . $row, $adGroup->delivery); // 直接设置 ad_name + $sheet->setCellValue('F' . $row, $adGroup->results); $sheet->setCellValue('G' . $row, $adGroup->reach); $sheet->setCellValue('H' . $row, $adGroup->revenue); $sheet->setCellValue('I' . $row, $adGroup->roas);