說我的列號是26,當我創建一個公式時,我的公式應該看起來像:例如:SUM(AA1:AA3)。但是如何將26翻譯成AA?或者說27到AB?有沒有辦法讓Apache POI將列索引用作整數並將其轉換爲字母表示形式?Apache poi Excel:根據列的整數索引創建公式
回答
這需要一點點代碼:
public static String columnName(int index) {
StringBuilder s = new StringBuilder();
while (index >= 26) {
s.insert(0, (char) ('A' + index % 26));
index = index/26 - 1;
}
s.insert(0, (char) ('A' + index));
return s.toString();
}
有所爲測試它:
public static void main(String[] args) {
System.out.println(columnName(25));
System.out.println(columnName(26));
System.out.println(columnName(52));
System.out.println(columnName(27 * 26));
}
輸出:
Z
AA
BA
AAA
歐文Bolwidt有正確的想法。
英語這將是:
num/26 - 1 = first_letter
num % 26 = second_letter
因此,例如:
27/26 - 1 = 0 => A
27 % 26 = 1 => B
這樣:
27 = AB
Excel 2007及更高版本中的列數限制爲16,384 - 即列名稱XFD [用於索引16,383]。所以你需要3個字母。也許更新的版本允許更多;我的功能可以處理高達Integer.MAX_VALUE - 這將是列FXSHRXX :-) –
哦,我明白了。感謝您的建議。 :) –
你要使用CellReference Apache的POI。這提供了你需要轉換
針對您的特殊情況下的方法,你想convertNumToColString(int)):
發生在基於0的基數爲10列,並返回一個ALPHA-26表示。
這實際上使Apache POI有內置的很多感覺。 –
- 1. Apache POI Excel行和列索引
- 2. Excel VBA根據點數創建索引
- 3. Apache poi創建錯誤的Excel文件
- 4. Excel索引公式
- 5. 使用POI指定excel列的公式
- 6. 使用Apache POI創建Excel圖表
- 7. Apache POI使用X,Y,Z軸線數據創建Excel
- 8. 創建oracle函數根據excel計算字段公式
- 9. Apache POI公式不評估
- 10. Apache POI評估公式
- 11. 由Apache POI創建的excel文件中的兼容模式
- 12. 創建excel公式
- 13. Excel公式索引匹配
- 14. Apache poi excel
- 15. excel java apache poi
- 16. 使用poi創建excel引發異常
- 17. 使用apache POI在excel文檔中創建列過濾器
- 18. 使用Apache POI在Excel中創建樹列表/表格
- 19. 使用Apache POI獲取Excel中公式的計算值3.14
- 20. 使用Apache POI
- 21. 如何用excel公式創建數據序列?
- 22. 使用apache poi創建列只讀
- 23. excel - 爲幾列創建簡單公式
- 24. Apache POI中的公式評估器
- 25. 使用單元格公式的Apache POI
- 26. 用apache-poi自動調整excel評論
- 27. Excel VBA /搜索公式列
- 28. 根據以前的列數據在Excel中創建新列
- 29. Excel公式:根據行數據輸出多個列標題?
- 30. 一個excel公式來查找數組中的行/列索引
http://stackoverflow.com/questions/2339238/how-to-set-formulas-in-cells-using-apache-poi – Hirak
@Hirak不是問題。問題是使用列號作爲參數而不是使用列字母。 1個與B相關聯,2個與C相關聯,等等。問題是我們開始得到雙重字母。 –