使用谷歌应用脚​​本从 MYSQL 数据库中获取数据时,谷歌电子表格的单元格中缺少某些值

Posted

技术标签:

【中文标题】使用谷歌应用脚​​本从 MYSQL 数据库中获取数据时,谷歌电子表格的单元格中缺少某些值【英文标题】:Some Values are missing in the cells in google spread sheet when fetching the data from MYSQL Database using google app script 【发布时间】:2020-03-20 13:02:11 【问题描述】:

请帮忙

。 当我在 mysql Workbench 中检查相同的内容时,其中显示了值。

function myMySQLFetchDataMS()  


  var stmt = conn.createStatement();
  var start = new Date(); // Get script starting time

  var date1 = "'%Y-%m-01'";

  var event = "'%Event%'";
  var selfserve = "'%Self Serve%'";
  var Bidding="'%Bidding%'";
  var Filler="'%Filler%'";

  var query = 'SELECT *from campaigns';//added missing closing single quote and spelled campaigns properly by Cooper
    var rs = stmt.executeQuery(query)

   var doc = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MS");
if (doc != null) 


  var range = doc.getRange("A:F");
  range.clearContent();

  Logger.log(doc.getIndex());


  // Returns the currently active spreadsheet
  var cell = doc.getRange('a1');
  var row = 0;
  var getCount = rs.getMetaData().getColumnCount(); // Mysql table column name count.

  for (var i = 0; i < getCount; i++)  
     cell.offset(row, i).setValue(rs.getMetaData().getColumnName(i+1)); // Mysql table column name will be fetch and added in spreadsheet.
    

  var row = 1; 
  while (rs.next()) 
    for (var col = 0; col < rs.getMetaData().getColumnCount(); col++)  
      cell.offset(row, col).setValue(rs.getString(col + 1)); // Mysql table column data will be fetch and added in spreadsheet.
    
    row++;
  

  rs.close();
  stmt.close();
  conn.close();
  var end = new Date(); // Get script ending time
  Logger.log('Time elapsed: ' + (end.getTime() - start.getTime())); // To generate script log. To view log click on View -> Logs.

谷歌电子表格单元格截图

Mysql Workbench 单元格截图

带有标题的屏幕截图 enter image description here

【问题讨论】:

您能分享一份经过清理的工作表副本吗? 尝试getFloat() 或其他类型,而不是getString @RafaGuillermo - 我没听懂你?您想要带有代码的 Google 电子表格副本吗? @TheMaster - 但是它将如何获取字符串值? 那里看起来不像字符串。不都是数字吗? 【参考方案1】:

我建议改变:

这个var range = doc.getRange("A:F");到这个var range = doc.getRange(1,1,doc.getLastRow(),6);

【讨论】:

测试了您推荐的更改,但仍然无法正常工作。

以上是关于使用谷歌应用脚​​本从 MYSQL 数据库中获取数据时,谷歌电子表格的单元格中缺少某些值的主要内容,如果未能解决你的问题,请参考以下文章

谷歌应用脚​​本从 gmail 中删除特定附件

使用谷歌应用脚​​本更新数据验证规则时如何保留原始范围

如何使用谷歌应用脚​​本找到最后一列?

如何使用谷歌应用脚​​本在 BigQuery 中导入 csv 日期格式

如何使用谷歌应用脚​​本在谷歌大查询中保存 2 个表?

谷歌应用脚​​本没有循环