3
3
import ujson
4
4
import os
5
5
6
- __version__ = '0.0.2 '
6
+ __version__ = '0.0.3 '
7
7
__author__ = 'Teeraphat Kullanankanjana'
8
8
9
9
class MicroGoogleSheet ():
@@ -100,15 +100,10 @@ def getCell(self, row=1, column=1):
100
100
101
101
if responseCode > 0 :
102
102
html_code = response .text
103
- start_index = html_code .find ('<body> ' )
104
- end_index = html_code .find ('</body> ' )
103
+ start_index = html_code .find ('start ' )
104
+ end_index = html_code .find ('finish ' )
105
105
script_content = html_code [start_index :end_index ]
106
- start_index = script_content .find ('script type="text/javascript"' )
107
- end_index = script_content .find ('</script>' )
108
- script_content = script_content [start_index :end_index ]
109
- script_content = script_content [script_content .find (
110
- 'body' )+ 18 :script_content .find ('/body' )- 21 ]
111
- return script_content
106
+ return script_content [29 :- 24 ]
112
107
else :
113
108
return "Error Code:{}" .format (responseCode )
114
109
@@ -121,15 +116,10 @@ def getRow(self, row=1):
121
116
responseCode = response .status_code
122
117
if responseCode > 0 :
123
118
html_code = response .text
124
- start_index = html_code .find ('<body> ' )
125
- end_index = html_code .find ('</body> ' )
119
+ start_index = html_code .find ('start ' )
120
+ end_index = html_code .find ('finish ' )
126
121
script_content = html_code [start_index :end_index ]
127
- start_index = script_content .find ('script type="text/javascript"' )
128
- end_index = script_content .find ('</script>' )
129
- script_content = script_content [start_index :end_index ]
130
- script_content = script_content [script_content .find (
131
- 'body' )+ 18 :script_content .find ('/body' )- 21 ]
132
- return script_content
122
+ return script_content [29 :- 24 ]
133
123
else :
134
124
return "Error Code:{}" .format (responseCode )
135
125
@@ -142,15 +132,10 @@ def getColumn(self, column=1):
142
132
responseCode = response .status_code
143
133
if responseCode > 0 :
144
134
html_code = response .text
145
- start_index = html_code .find ('<body> ' )
146
- end_index = html_code .find ('</body> ' )
135
+ start_index = html_code .find ('start ' )
136
+ end_index = html_code .find ('finish ' )
147
137
script_content = html_code [start_index :end_index ]
148
- start_index = script_content .find ('script type="text/javascript"' )
149
- end_index = script_content .find ('</script>' )
150
- script_content = script_content [start_index :end_index ]
151
- script_content = script_content [script_content .find (
152
- 'body' )+ 18 :script_content .find ('/body' )- 21 ]
153
- return script_content
138
+ return script_content [29 :- 24 ]
154
139
else :
155
140
return "Error Code:{}" .format (responseCode )
156
141
@@ -183,22 +168,31 @@ def deleteColumn(self,column=1):
183
168
184
169
def gen_scriptFile (self ):
185
170
code = """
171
+ /*
172
+ Author: Teeraphat Kullanankanjana
173
+ Version: 0.0.3
174
+ */
175
+
186
176
function doGet(e) {
177
+ // Extract parameters from the request
187
178
var sheet_id = e.parameter.sheet_id;
188
179
var sheet_name = e.parameter.sheet_name;
189
180
var mode = e.parameter.mode;
190
-
181
+
182
+ // Open the spreadsheet and get the sheet
191
183
var ss = SpreadsheetApp.openById(sheet_id);
192
184
var sheet = ss.getSheetByName(sheet_name);
193
-
185
+
186
+ // Update a single cell
194
187
if (mode == "updateCell") {
195
188
var row = e.parameter.row;
196
189
var column = e.parameter.column;
197
190
var data = e.parameter.data;
198
-
199
191
var cell = sheet.getRange(row, column);
200
192
cell.setValue(data);
201
193
}
194
+
195
+ // Update a row with multiple values
202
196
else if (mode == "updateRow") {
203
197
var row = e.parameter.row;
204
198
var data = [];
@@ -214,7 +208,8 @@ def gen_scriptFile(self):
214
208
var range = sheet.getRange(row, 1, 1, data.length);
215
209
range.setValues([data]);
216
210
}
217
-
211
+
212
+ // Append a row with multiple values
218
213
else if (mode == "appendRow") {
219
214
var data = [];
220
215
var count = 0;
@@ -235,7 +230,8 @@ def gen_scriptFile(self):
235
230
}
236
231
sheet.getRange(lastRow + 1, 1, 1, data.length).setValues([data]);
237
232
}
238
-
233
+
234
+ // Append a column with multiple values
239
235
else if (mode == "appendColumn") {
240
236
var data = [];
241
237
var count = 0;
@@ -256,6 +252,8 @@ def gen_scriptFile(self):
256
252
}
257
253
sheet.getRange(1, lastColumn + 1, data.length, 1).setValues(data);
258
254
}
255
+
256
+ // Update a column with multiple values
259
257
else if (mode == "updateColumn") {
260
258
var column = e.parameter.column;
261
259
var data = [];
@@ -271,17 +269,20 @@ def gen_scriptFile(self):
271
269
var range = sheet.getRange(1, column, data.length, 1);
272
270
range.setValues(data);
273
271
}
274
-
272
+
273
+ // Get the value of a specific cell
275
274
else if (mode == "getCell") {
276
275
var row = e.parameter.row;
277
276
var column = e.parameter.column;
278
277
279
278
var cell = sheet.getRange(row, column);
280
279
var value = cell.getValue();
281
280
282
- var html = "<html><head><title>Get The data </title></head><body><h1>" + value + "</h1></body></html>";
281
+ var html = "<html><head><title>Get The data </title></head><body><h1>start</h1><h1> " + value + "</h1><h1>finish </h1></body></html>";
283
282
return HtmlService.createHtmlOutput(html);
284
283
}
284
+
285
+ // Get the values of a specific row
285
286
else if (mode == "getRow") {
286
287
var row = e.parameter.row;
287
288
var range = sheet.getRange(row, 1, 1, sheet.getLastColumn());
@@ -292,9 +293,11 @@ def gen_scriptFile(self):
292
293
heading += values[i] + " ";
293
294
}
294
295
295
- var html = "<html><head><title>Get Row Data</title></head><body><h1>" + heading + "</h1></body></html>";
296
+ var html = "<html><head><title>Get Row Data</title></head><body><h1>start</h1><h1> " + heading + "</h1><h1>finish </h1></body></html>";
296
297
return HtmlService.createHtmlOutput(html);
297
298
}
299
+
300
+ // Get the values of a specific column
298
301
else if (mode == "getColumn") {
299
302
var column = e.parameter.column;
300
303
var range = sheet.getRange(1, column, sheet.getLastRow(), 1);
@@ -304,20 +307,24 @@ def gen_scriptFile(self):
304
307
heading += values[i] + " ";
305
308
}
306
309
307
- var html = "<html><head><title>Get Row Data</title></head><body><h1>" + heading + "</h1></body></html>";
310
+ var html = "<html><head><title>Get Column Data</title></head><body><h1>start</h1><h1> " + heading + "</h1><h1>finish </h1></body></html>";
308
311
return HtmlService.createHtmlOutput(html);
309
312
310
313
}
314
+
315
+ // Delete a specific row
311
316
else if (mode == "deleteRow") {
312
317
var row = e.parameter.row;
313
318
sheet.deleteRow(row);
314
319
}
315
320
321
+ // Delete a specific column
316
322
else if (mode == "deleteColumn") {
317
323
var column = e.parameter.column;
318
324
sheet.deleteColumn(column);
319
325
}
320
326
327
+ // Clear the content of a specific cell
321
328
else if (mode == "deleteCell") {
322
329
var row = e.parameter.row;
323
330
var column = e.parameter.column;
@@ -328,3 +335,4 @@ def gen_scriptFile(self):
328
335
"""
329
336
with open ('script.txt' , 'w' ) as file :
330
337
file .write (code )
338
+
0 commit comments