怎么使用poi获取excel2007表格cell中的String数据?通过类似“AG20”地址获取。

发布于 2021-12-04 07:52:55 字数 102 浏览 857 评论 1

怎么使用poi获取excel2007表格cell中的String数据?通过类似“AG20”地址获取。只需要cell中的内容以String类型返回就行,只是参数是“M40”样式的地址怎么实现?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

顾挽 2021-12-04 15:03:49

已经实现:

/**

	 * @Title:通过excel坐标地址获取cell

	 * @Description:Comment for non-overriding methods

	 * @author 张颖辉

	 * @date 2017年5月15日下午8:26:08

	 * @param sheet

	 * @param address

	 * @return

	 */
	public static Cell getCell(Sheet sheet, String address) {
		int firstDigit = firstDigit(address);
		int index = address.indexOf(firstDigit + "");
		int rowNum = Integer.valueOf(address.substring(index)) - 1;
		int columNum = excelColStrToNum(address.substring(0, index));
		Row row = sheet.getRow(rowNum);
		return row.getCell(columNum);

	}

	/**

	 * 字符串的第一个数字

	 * 

	 * @param str

	 * @return

	 */
	private static int firstDigit(String str) {
		for (int i = 0; i < str.length(); i++) {
			char c = str.charAt(i);
			if (c >= '0' && c <= '9') {
				return c - '0';
			}
		}
		return -1;
	}

/**

	 * Excel column index begin 0

	 * 

	 * @Description:Excel 列号转换, A 转 0,,从0开始

	 * @param colStr

	 * @param length

	 * @return

	 */
	public static int excelColStrToNum(String colStr) {
		int length = colStr.length();
		int num = 0;
		int result = 0;
		for (int i = 0; i < length; i++) {
			char ch = colStr.charAt(length - i - 1);
			num = (int) (ch - 'A' + 1);
			num *= Math.pow(26, i);
			result += num;
		}
		result--;
		return result;
	}

源码地址

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文