-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGoogleSheet.php
125 lines (105 loc) · 3.44 KB
/
GoogleSheet.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
/**
* Created by PhpStorm.
* User: hungnguyen
* Date: 02/03/16
* Time: 6:33 AM
*/
class GoogleSheet
{
public function __construct()
{
}
/*
* List of all SpreadSheet
*/
public static function getAllSpreadSheetFeed()
{
$spreadsheetService = new Google\Spreadsheet\SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheets();
return $spreadsheetFeed;
}
/*
* List of all worksheets
*/
public static function getWorksheets($feedTitle)
{
$spreadsheetService = new Google\Spreadsheet\SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheets();
$spreadsheet = $spreadsheetFeed->getByTitle($feedTitle);
$worksheetFeed = $spreadsheet->getWorksheets();
return $worksheetFeed;
}
/*
* Get list-based row
* How to loop the data
* foreach ($listBaseRows->getEntries() as $entry)
{
$values[] = $entry->getValues();
}
*/
public static function getListBaseFeed($sheet, $workSheetName)
{
$spreadsheetService = new Google\Spreadsheet\SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheets();
$spreadsheet = $spreadsheetFeed->getByTitle($sheet);
$worksheetFeed = $spreadsheet->getWorksheets();
$worksheet = $worksheetFeed->getByTitle($workSheetName);
$listFeed = $worksheet->getListFeed();
return $listFeed;
}
public static function getOnlyFieldFromListBaseFeed($sheet, $workSheetName, $field)
{
$listBaseFeeds = self::getListBaseFeed($sheet, $workSheetName);
$fields = [];
$values = [];
foreach ($listBaseFeeds->getEntries() as $entry)
{
$values[] = $entry->getValues();
}
$i=0;
if (count($values) > 0)
{
foreach ($values as $value) {
$fields[] = $values[$i][$field];
$i++;
}
}
return $fields;
}
/*
* Add list row
*/
public static function addListRow($sheet, $workSheetName, $data)
{
$spreadsheetService = new Google\Spreadsheet\SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheets();
$spreadsheet = $spreadsheetFeed->getByTitle($sheet);
$worksheetFeed = $spreadsheet->getWorksheets();
$worksheet = $worksheetFeed->getByTitle($workSheetName);
$listFeed = $worksheet->getListFeed();
$currentId = self::getOnlyFieldFromListBaseFeed($sheet, $workSheetName, 'id');
foreach ($data as $row)
{
if (!in_array($row['id'], (array)$currentId)) {
$listFeed->insert($row);
}
}
}
/*
* Add header for a worksheet
*/
public static function addHeaderToWorkSheet()
{
$spreadsheetService = new Google\Spreadsheet\SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheets();
$spreadsheet = $spreadsheetFeed->getByTitle('test');
$worksheetFeed = $spreadsheet->getWorksheets();
$worksheet = $worksheetFeed->getByTitle('Sheet 2');
$cellFeed = $worksheet->getCellFeed();
$cellFeed->editCell(1,1, "Row1Col1Header");
$cellFeed->editCell(1,2, "Row1Col2Header");
$cellFeed->editCell(1,3, "Row1Col3Header");
$cellFeed->editCell(1,4, "Row1Col4Header");
}
}