c# - 在 c# 中获取 Google Sheets API v4 中的最后一列
问题描述
我已经看过很多关于在 C# 中为 Google Sheets API v4 查找给定列的最后一行的帖子,但我似乎找不到任何关于查找给定行的最后一列的信息。我没有发现任何关于此的问题 - 但如果我弄错了,请引导我到正确的地方。
在我的工作表中,每列都有标题。随着时间的推移,我预计我将需要根据需要添加或删除列 - 每次发生这种情况时不必更新我的代码会很棒。
我正处于编写从 Google 表格收集数据的代码的开始阶段 - 但这是我目前所拥有的。我知道我需要更改变量“范围”的写入方式,只是不知道是什么。
static void ReadEntries()
{
var range = $"{sheet}!A1:ET";
var request = service.Spreadsheets.Values.Get(SpreadsheetId, range);
var response = request.Execute();
var values = response.Values;
if(values != null && values.Count>0)
{
foreach (var row in values)
{
System.Diagnostics.Debug.WriteLine("{0} | {1} | {2}", row[0], row[1], row[2]);
}
}
else
{
System.Diagnostics.Debug.WriteLine("No data found.");
}
}
编辑:已解决
我为此使用了纳粹 A 提供的伪代码。if(row[col])
我在铸造和其他系统异常方面遇到了问题。事实证明foreach
,我们不必检查它row[col]
是否在范围内。以下是我的最终代码,以防将来有人需要它。我计划让声明的“ET”列var range = $"{sheet}!A1:ET;
足够大,以容纳将来添加到我的电子表格中的任何列。谢谢你的帮助!
static void ReadEntries()
{
var range = $"{sheet}!A1:ET";
var request = service.Spreadsheets.Values.Get(SpreadsheetId, range);
var response = request.Execute();
var values = response.Values;
int max = 0;
int currMax;
if (values != null && values.Count>0)
{
foreach(var row in values)
{
currMax = 0;
foreach(var col in row)
{
currMax++;
}
if (max < currMax)
{
max = currMax;
}
}
}
else
{
System.Diagnostics.Debug.WriteLine("No data found.");
}
System.Diagnostics.Debug.WriteLine(max);
}
解决方案
所以基本上,你需要有一个嵌套循环来遍历values
.
我已经测试了这个伪代码并且工作了,但是由于我没有任何方法来运行 C# 代码,这就是我能给你的全部。这是一个您应该可以阅读的伪代码。
var max = 0;
foreach(var row in values){
var currMax = 0;
foreach(var col in row){
if(row[col]){ // as long as data exists, currMax will increment
currMax++;
continue;
}
break; // stop loop if last cell being checked is empty
}
if(max < currMax){ // assign the largest currMax to max
max = currMax;
}
}
所以在这个伪代码中,max
将包含范围内所有行的最大列的值。上面的这段代码应该取代你的foreach
电话
如果您有任何疑问,请随时在下面澄清。
推荐阅读
- android - 是什么让我在我的清单中出现此错误“清单合并失败并出现多个错误,请参阅日志”
- angular - 为什么 JHipster 定义一个名为 EntityArrayResponseType 的类型?
- chart.js - ng2-charts:如何设置 y 轴的固定范围
- javascript - javascript如何获取父类构造函数参数
- c# - 无法在 VS Web 解决方案中添加 Resx 文件
- php - 从 PHP 脚本生成 HTML 页面时如何隐藏 shebang
- java - 并发哈希映射
与原子参考 - html - 使用 Google AMP“on”操作参考当前事件的文本内容
- python - python文件在没有库的情况下进行ast和back
- javascript - 正则表达式仅修剪逗号,但不在文本之间和引用时修剪 - Java 脚本