你好:使用Java的Google Spreadsheet API V4
,我想要根据列数
获取列字母
。例如:第2列的列字母是B。
是否已经在Google Spreadsheet API中提供了这样的功能OR是否有其他简单方式来实现这一点OR我需要编写自己的转换代码?
你好:使用Java的Google Spreadsheet API V4
,我想要根据列数
获取列字母
。例如:第2列的列字母是B。
是否已经在Google Spreadsheet API中提供了这样的功能OR是否有其他简单方式来实现这一点OR我需要编写自己的转换代码?
问题仍然是:在Google Spreadsheet API V4中是否有一种本地方法可以根据列号获取列字母?
但是,为了以后参考,如果有人需要实现自己的转换,我提供下面的比较表。
情况1:根据列号获取列字母
public void ColumnNumberToLetter() {
int inputColumnNumber = 49;
String outputColumnName = "";
int Base = 26;
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int TempNumber = inputColumnNumber;
while (TempNumber > 0) {
int position = TempNumber % Base;
outputColumnName = (position == 0 ? 'Z' : chars.charAt(position > 0 ? position - 1 : 0)) + outputColumnName;
TempNumber = (TempNumber - 1) / Base;
}
System.out.println("ColumnNumberToLetter :" + inputColumnNumber + " = " + outputColumnName);
}
案例2:根据列字母获取列号
public void ColumnLetterToNumber() {
String inputColumnName = "AW";
int outputColumnNumber = 0;
if (inputColumnName == null || inputColumnName.length() == 0) {
throw new IllegalArgumentException("Input is not valid!");
}
int i = inputColumnName.length() - 1;
int t = 0;
while (i >= 0) {
char curr = inputColumnName.charAt(i);
outputColumnNumber = outputColumnNumber + (int) Math.pow(26, t) * (curr - 'A' + 1);
t++;
i--;
}
System.out.println("ColumnLetterToNumber : " + inputColumnName + " = " + outputColumnNumber);
}
+(int) Math.pow(26, t)
。问题在于你没有正确计算字母。对于一个字母,你做得很好,AA-AZ 也可以正常工作,但当它到达 B_ 区域时,你会失去 26 列。AB_ 同样如此。使用三个字母列进行测试,效果很好。干得好! - Skaros Ilias
FindReplaceRequest()
和.getFind();
查找值。此外,您还可以使用match()
,它可以在数组中查找字符串,如此线程所建议的。 - abielita