gpt4 book ai didi

java - 评估Excel水平单元格,就像Java中的评估一样

转载 作者:行者123 更新时间:2023-12-01 12:31:40 24 4
gpt4 key购买 nike

我正在尝试创建一个引擎,它将有资格评估 Excel 工作表中的公式。例如SUM(A1:Z1)(水平系列)、SUM(A1:A10)(垂直系列)。

为此,我必须首先确定该系列的所有单元格。对于垂直的来说,这非常简单。但我需要帮助做水平方向。

在水平部分,行号是固定的,但列引用可以在很大范围内变化,例如从 AAA1 到 ADZ1。

请用您的专业知识帮助我找到仅使用核心 Java 来完成此操作的最佳方法。

我认为我必须更具体地回答这个问题。请在下面找到具体问题

我需要一种方法,我将给出如下输入并期望输出如下

输入:“A1”(单元格开始)、“BA1”(单元格结束)

输出:包含以下数据的列表

A1、B1、C1、...、Z1、AA1、AB1、... AZ1、BA1。

最佳答案

尝试这3种方法,如果有任何问题请评论。

//get numerical value from the string (ex: AA from AA1)
private int getHorizentalPosition(String str) {
int result = 0;
String s = "";
for(int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(Character.isLetter(c)) {
result = result * 26;
result = result + (c - 'A' + 1);
}
}
return result;
}

//get string value from the numerical value
private static String getStringFormat(int horizentalIndex) {
String s = "";
while(horizentalIndex > 0) {
int x = horizentalIndex % 26;
if(x == 0) {
s = s + 'Z';
}
else {
s = s + (char)(x - 1 + 'A');
}
horizentalIndex = (horizentalIndex - 1) / 26;
}
return new java.lang.StringBuilder(s).reverse().toString();
}

//your out put
public String[] getHorizentals(String str1, String str2) {

int first = getHorizentalPosition(str1);
int last = getHorizentalPosition(str2);

String[] res = new String[last - first + 1];
for(int i = first; i <= last; i++) {
res[i - first] = getStringFormat(i);
}
return res;
}

关于java - 评估Excel水平单元格,就像Java中的评估一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25883165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com