javascript - 当我尝试从 Google 表格中获取数据时,如果此数据包含日期或时间,则不会将其提取到 Google 应用脚本中
问题描述
我在很多网站上搜索了这个信息,但不幸的是我没有找到它。我使用 Google 的应用脚本从 Google Sheet 获取数据 我用来从 google sheet 获取数据的代码;不能传递任何包含日期或时间的数据,例如2021/01/01
or 12:00 AM
,12:00:00
但是当删除日期或时间时,获取数据确实可以正常工作
使用的技术:google app script、google sheet
问题是:无论数据类型如何,如何获取数据?
Code.gs它可以正常工作
var ss1 = "1bqKXcD2uXUIegqsb4pwieuhwe29-3872_Kj50kfvvXU";
function getLicenseExpirationData(){
//Get spread sheet with id = to var ss1
var ss = SpreadsheetApp.openById(ss1);
//Get spread sheet named Reports
var ws = ss.getSheetByName("Reports");
//Get data from a spread sheet
var LicenseExpirationData = ws.getRange(2, 1,ws.getLastRow()-1,9).getValues();
//After geting all data return it so we can use it
return LicenseExpirationData;
};
TableScript.html我猜问题出在这里
document.addEventListener("DOMContentLoaded",function(){
//Get all result from google sheet and if you did get it display it or do display error
google.script.run.withSuccessHandler(generateExpirationTable).getLicenseExpirationData();
});
//function name generateTable
function generateExpirationTable(dataArray){
//Display result inside in id with name ExpirationData
var tbody = document.getElementById("ExpirationData");
//Do this for each result
dataArray.forEach(function(r){
//Create Element <tr>
var row = document.createElement("tr");
//Create Element <td> for column1
var column1 = document.createElement("td");
//Display result1 inside <td>
column1.textContent = r[0];
//Create Element <td> for column2
var column2 = document.createElement("td");
//Display result2 inside <td>
column2.textContent = r[1];
//Create Element <td> for column3
var column3 = document.createElement("td");
//Display result3 inside <td>
column3.textContent = r[2];
//Create Element <td> for column3
var column4 = document.createElement("td");
//Display result4 inside <td>
column4.textContent = r[3];
//Create Element <td> for column3
var column5 = document.createElement("td");
//Display result5 inside <td>
column5.textContent = r[4];
//Create Element <td> for column3
var column6 = document.createElement("td");
//Display result6 inside <td>
column6.textContent = r[5];
//Create Element <td> for column3
var column7 = document.createElement("td");
//Display result7 inside <td>
column7.textContent = r[6];
//Create Element <td> for column3
var column8 = document.createElement("td");
//Display result8 inside <td>
column8.textContent = r[7];
//Create Element <td> for column3
var column9 = document.createElement("td");
//Display result9 inside <td>
column9.textContent = r[8];
//Create Element <td> for column3
var column10 = document.createElement("td");
//Display result10 inside <td>
column10.textContent = r[9];
//Move to next column
row.appendChild(column1);
//Move to next column
row.appendChild(column2);
//Move to next column
row.appendChild(column3);
//Move to next column
row.appendChild(column4);
//Move to next column
row.appendChild(column5);
//Move to next column
row.appendChild(column6);
//Move to next column
row.appendChild(column7);
//Move to next column
row.appendChild(column8);
//Move to next column
row.appendChild(column9);
//Move to next row
row.appendChild(column10);
//Move to next row
tbody.appendChild(row);
});
};
function showError() {
alert('Error!');
}
以 Html 形式查看项目它可以正常工作
<table class="mt-0 pt-0 table">
<thead>
<tr>
<th>Date</th>
<th>Name</th>
<th>Num</th>
<th>Data2</th>
<th>Data3</th>
<th>Data4</th>
<th>Data5</th>
<th>Data6</th>
<th>Data7</th>
<tr>
</thead>
<!--Display table result on id body-table-->
<tbody id="ExpirationData">
</tbody>
</table>
解决方案
两件事情:
从 Google 表格中检索日期对象时,最好使用getDisplayValues()而不是
getValues()
将数组从 code.gs 传递到客户端时 - 将其作为字符串传递,即: Apps Script 端的数组,然后在 Javascript 端再次
JSON.stringify()
返回它JSON.parse()
推荐阅读
- javascript - 如何检测 div 何时触摸 div 并在没有画布元素的普通 js 中使其 gavity
- mql4 - 我如何在 mql4 中获得 ea 上的指标颜色
- javascript - 手动触发sortstart事件Jquery ui
- javascript - 使用 React Javascript 中的父组件从功能性子组件调用异步函数
- sql - oracle9i表单中如何调用报表
- python - python libclang绑定,获取无效文件错误
- ios - 如何在Objective-c中创建一个多级UITableView高达n级
- c++ - 如何使用相同的构造函数参数和字段名称?
- java - 从 CMD/Powershell 编译 Java 失败
- node.js - 如何在我的网站中用 react js 实现这个功能