java像excel表格列一样添加一列后列名输出A~Z或AA~AZ等求输入1则输出为A,输入27则输出AA
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java像excel表格列一样添加一列后列名输出A~Z或AA~AZ等求输入1则输出为A,输入27则输出AA相关的知识,希望对你有一定的参考价值。
求代码
可以用如下代码实现改功能,输入一个数字27返回ABString[] array = new String[] "A", "B", "C", "D", "E", "F", "G", "H","I", "J", "K", "L", "M", "N", "O", "P", "Q",
"R", "S", "T", "U", "V", "W", "X", "Y", "Z" ;
int num = 428;
int count = 26;
System.out.println("num/count=" + num/count);
String out = "";
if (num/count != 0)
out = array[num/count-1];
if (num%count == 0)
out = out + array[num%count];
System.out.println(out);
else
out = out + array[num%count-1];
System.out.println(out);
else
out = array[num-1];
System.out.println(out);
参考技术A import java.util.HashMap;
import java.util.Iterator;
public class test1 /**
* 利用HashMap
* @param args
*/
public static void main(String[] args) HashMap<String,String> hm=new HashMap<String,String>();
for(int k=0;k<=26;k++)
int j=k>=1?k:0;
for(int i=1;i<=26;i++)
if(j>=1)
hm.put(k*26+i+"",((char)(j+64))+""+((char)(i+64)));
else
hm.put(k*26+i+"",((char)(i+64))+"");
Iterator it=hm.keySet().iterator();
while(it.hasNext())
String key=(String)it.next();
//用列号1、27、28来做测试是否正确
if(key.equals(1+"")||key.equals(27+"")||key.equals(28+""))
String value=hm.get(key);
System.out.println(value);
参考技术B 实际就是10进制转换为26进制,可以参考10进制转2进制、8进制、16进制。自己实现试试看 参考技术C public class VersionCode
public static Integer CodeConvert(String s)
if (s==null || s.length()==0) return 0;
int n = 0;
char[] cc=s.toCharArray();
for (int i = s.length() - 1, j = 1; i >= 0; i--, j *= 26)
char c = cc[i];
if (c < 'A' || c > 'Z') return 0;
n += ((int)c - 64) * j;
return n;
public static String CodeConvert(int n)
String s = "";
while (n > 0)
int m = n % 26;
if (m == 0) m = 26;
s = (char)(m + 64) + s;
n = (n - m) / 26;
return s;
public static void main(String[] args)
for (int i=1;i<1000;i++)
System.out.println("i="+i+" =>"+CodeConvert(i));
System.out.println("i=AAA"+" =>"+CodeConvert("AAA"));
向熊猫数据框添加一列
【中文标题】向熊猫数据框添加一列【英文标题】:Adding a column to panda dataframe 【发布时间】:2021-06-11 17:25:19 【问题描述】:我已经尝试了几个小时来找到一种方法来复制列 n 次并将它们添加到 Dataframe
但运气不佳。请帮忙!
当前数据框:
0
0 2
1 4
2 5
3 6
4 9
输出:
0 1 2 ... 99
0 2 2 2 2
1 4 4 4 4
2 5 5 5 5
3 6 6 6 6
4 9 9 9 9
【问题讨论】:
pd.concat([df]*100, axis = 'columns')
可能吗?对于列名,您可以在连接后传递df.columns = np.arange(0, len(df))
【参考方案1】:
可能有几种方法,一种方法是这样的:
df= pd.DataFrame()
for i in range(5):
for j in range(0,10):
df.loc[i,j] = i+j
df
0 1 2 3 4 5 6 7 8 9
0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0
1 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
2 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0
3 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0
4 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0
【讨论】:
【参考方案2】:正如@sammywemmy 在评论中提到的,您可以使用:-
df=pd.concat([df]*100, axis = 'columns')
之后重命名列:-
df.columns=range(0,len(df.columns))
【讨论】:
【参考方案3】:>>> df
0
0 2
1 4
2 5
3 6
4 9
.iloc
是另一种选择
>>> df.iloc[:, [0] * 10]
0 0 0 0 0 0 0 0 0 0
0 2 2 2 2 2 2 2 2 2 2
1 4 4 4 4 4 4 4 4 4 4
2 5 5 5 5 5 5 5 5 5 5
3 6 6 6 6 6 6 6 6 6 6
4 9 9 9 9 9 9 9 9 9 9
【讨论】:
以上是关于java像excel表格列一样添加一列后列名输出A~Z或AA~AZ等求输入1则输出为A,输入27则输出AA的主要内容,如果未能解决你的问题,请参考以下文章
如何在一个DataGridView中的一列添加DateTimePicker控件 C#