1. CellReferenceUtil
package edu.xmu.excel.util; public class CellReferenceUtil { /** * Input Coordination: C<br/> * Output Column Number: 2<br/> * * @param coordName * @return colIndex: 0 based index */ public static int getColIndex(String colName) { colName = colName.toUpperCase(); int value = 0; for (int i = 0; i < colName.length(); i++) { int delta = colName.charAt(i) - 64; value = value * 26 + delta; } int colIndex = value - 1; return colIndex; } /** * Input column index: 2 <br/> * Output column name: C <br/> * * @param colIndex * @return */ public static String getColName(int colIndex) { int quotient = (colIndex) / 26; if (quotient > 0) { return getColName(quotient - 1) + (char) ((colIndex % 26) + 65); } else { return "" + (char) ((colIndex % 26) + 65); } } /** * Input coord: C8<br/> * Output Row Number: 7<br/> * * @param coordName * @return rowIndex starts with 0 */ public static int getRowIndex(String rowName) { int rowIndex = Integer.parseInt(rowName) - 1; return rowIndex; } /** * Input rowIndex: 7 <br/> * Output rowName: 8 <br/> * * @param rowIndex * @return */ public static String getRowName(int rowIndex) { int rowName = rowIndex + 1; return String.valueOf(rowName); } /** * Input pos: col = 2, row = 7<br/> * Output coord: C8<br/> * * @param colIndex * @param rowIndex * @return */ public static String getCoordName(int colIndex, int rowIndex) { String colName = getColName(colIndex); String rowName = getRowName(rowIndex); return colName + rowName; } /** * Input coordName: C8 <br/> * Output colIndex: 2 <br/> * * @param coordName * @return colIndex: Starts with 0 */ public static int getColIndexByCoordName(String coordName) { String[] colAndRowName = splitColAndRow(coordName); String colName = colAndRowName[0]; return getColIndex(colName); } /** * Input coordName: C8 <br/> * Output rowIndex: 7 <br/> * * @param coordName * @return rowIndex: 0 based index */ public static int getRowIndexByCoordName(String coordName) { String[] colAndRowName = splitColAndRow(coordName); String rowName = colAndRowName[1]; return getRowIndex(rowName); } /** * Input coordName: C8 <br/> * Output : String[]{C, 8} <br/> * * @param coordName * @return */ private static String[] splitColAndRow(String coordName) { int rowNumStartIndex = 0; for (int i = 0; i < coordName.length(); i++) { char ch = coordName.charAt(i); if (Character.isDigit(ch)) { rowNumStartIndex = i; break; } } String colName = coordName.substring(0, rowNumStartIndex); String rowName = coordName.substring(rowNumStartIndex); return new String[] { colName, rowName }; } }
2. Test case:
package edu.xmu.excel.util; import static org.junit.Assert.assertEquals; import org.junit.Test; public class CellReferenceUtilTest { /** * Test method for * {@link edu.xmu.excel.util.CellReferenceUtil#getColIndex(String)} */ @Test public void getColIndexTest() { int colIndex = CellReferenceUtil.getColIndex("A"); assertEquals(0, colIndex); colIndex = CellReferenceUtil.getColIndex("AA"); assertEquals(26, colIndex); colIndex = CellReferenceUtil.getColIndex("AAA"); assertEquals(26 * 26 + 26, colIndex); } /** * Test method for * {@link edu.xmu.excel.util.CellReferenceUtil#getColName(int)} */ @Test public void getColNameTest() { String colName = CellReferenceUtil.getColName(0); assertEquals("A", colName); colName = CellReferenceUtil.getColName(26); assertEquals("AA", colName); colName = CellReferenceUtil.getColName(26 * 26 + 26); assertEquals("AAA", colName); } /** * Test method for * {@link edu.xmu.excel.util.CellReferenceUtil#getRowIndex(String)} */ @Test public void getRowIndexTest() { int rowIndex = CellReferenceUtil.getRowIndex("8"); assertEquals(7, rowIndex); rowIndex = CellReferenceUtil.getRowIndex("27"); assertEquals(26, rowIndex); } /** * Test method for * {@link edu.xmu.excel.util.CellReferenceUtil#getRowName(int)} */ @Test public void getRowNameTest() { String rowName = CellReferenceUtil.getRowName(7); assertEquals("8", rowName); rowName = CellReferenceUtil.getRowName(26); assertEquals("27", rowName); } /** * Test method for * {@link edu.xmu.excel.util.CellReferenceUtil#getColIndexByCoordName(String)} */ @Test public void getColIndexByCoordNameTest() { int colIndex = CellReferenceUtil.getColIndexByCoordName("C8"); assertEquals(2, colIndex); colIndex = CellReferenceUtil.getColIndexByCoordName("AA21"); assertEquals(26, colIndex); colIndex = CellReferenceUtil.getColIndexByCoordName("AAA21"); assertEquals(26 * 26 + 26, colIndex); } /** * Test method for * {@link edu.xmu.excel.util.CellReferenceUtil#getRowIndexByCoordName(String)} */ @Test public void getRowIndexByCoordNameTest() { int rowIndex = CellReferenceUtil.getRowIndexByCoordName("C8"); assertEquals(7, rowIndex); rowIndex = CellReferenceUtil.getRowIndexByCoordName("AA21"); assertEquals(20, rowIndex); rowIndex = CellReferenceUtil.getRowIndexByCoordName("AA222"); assertEquals(221, rowIndex); } /** * Test method for * {@link edu.xmu.excel.util.CellReferenceUtil#getCoordName(int, int)} */ @Test public void getCoordNameTest() { String coordName = CellReferenceUtil.getCoordName(2, 7); assertEquals("C8", coordName); coordName = CellReferenceUtil.getCoordName(26, 21); assertEquals("AA22", coordName); coordName = CellReferenceUtil.getCoordName(26 * 26 + 26, 21); assertEquals("AAA22", coordName); } }
相关推荐
org.apache.poi:poi:4.1.2 org.apache.poi:poi-ooxml:4.1.2 org.apache.poi:poi-ooxml-schemas:4.1.2 org.apache.xmlbeans:xmlbeans:3.1.0 com.github.virtuald:curvesapi:1.06 com.zaxxer:SparseBitSet:1.2 commons...
implementation group: 'org.apache.poi', name: 'poi', version: '***' Gradle (Short): implementation 'org.apache.poi:poi:***' Gradle (Kotlin): implementation("org.apache.poi:poi:***") ``` # 含有的 ...
implementation group: 'org.apache.poi', name: 'poi', version: '***' Gradle (Short): implementation 'org.apache.poi:poi:***' Gradle (Kotlin): implementation("org.apache.poi:poi:***") ``` # 含有的 ...
赠送jar包:poi-3.16.jar; 赠送原API文档:poi-3.16-javadoc.jar; 赠送源代码:poi-3.16-sources.jar; 赠送Maven依赖信息文件:poi-3.16.pom; 包含翻译后的API文档:poi-3.16-javadoc-API文档-中文(简体)版.zip...
Java POI 是一个开源项目,由Apache软件基金会维护,它为开发者提供了在Java环境中读取、写入和修改Microsoft Office格式文件的能力。这个强大的库主要关注Excel(XLS和XLSX)、Word(DOC和DOCX)以及PowerPoint...
implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '***' Gradle (Short): implementation 'org.apache.poi:poi-ooxml:***' Gradle (Kotlin): implementation("org.apache.poi:poi-ooxml:***...
Java POI库是Apache软件基金会开发的一个开源项目,专门用于读写Microsoft Office格式的文件,如Word、Excel和PowerPoint。在"java poi导出word"这个场景中,我们主要关注的是如何使用Java POI来创建和编辑Word文档...
Java POI 是一个开源项目,由Apache软件基金会维护,它提供了API用于读写Microsoft Office格式的文件,如Word(.doc)、Excel(.xls/.xlsx)、PowerPoint(.ppt/.pptx)以及Visio(.vsd)和Outlook(.msg)的数据。...
Java POI库是一个广泛使用的开源项目,主要用于读取、写入和修改Microsoft Office格式的文件,包括Excel、Word和PowerPoint。在这个特定的话题中,我们将深入探讨如何利用Java POI来操作PPT(PowerPoint)文件。以下...
标签:apache、poi、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用...
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...
标签:apache、poi、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '***' Gradle (Short): implementation 'org.apache.poi:poi-ooxml:***' Gradle (Kotlin): implementation("org.apache.poi:poi-ooxml:***...
Java POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在Java中,如果你需要进行Excel的读写操作,POI库是必不可少的工具。这个"java poi jar包"包含了处理Excel文件所需...
Java中的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件,包括Word(.doc和.docx)文档。在本案例中,我们关注的是如何使用POI将Word文档转换为HTML格式。这个过程对于在网络上展示...
本篇文章将深入探讨如何利用POI技术在Java中实现Excel的上传、导出以及将数据保存至数据库。 首先,我们需要了解Apache POI的基本用法。POI提供了HSSF(用于.xls文件)和XSSF(用于.xlsx文件)API,它们允许我们...
基于:iText 2.1.7,OpenPdf,JExcelAPI,POI库。 基于Xml的输入源,带有集成的WebJava环境对象。 包括动态标签的结构。 演示...
"org.apache.poi3.9.jar"是这个项目的一个版本,适用于Java环境,它提供了对Office文档的读取、写入和修改功能。在Java编程中,如果你需要处理Excel数据,这个库是一个非常重要的工具。 该jar包中的主要类和接口...
Apache POI 提供了Java API,使得开发者可以使用Java来读取、写入和修改这些文件。在给定的"apache-poi-3.17(最新稳定版本)"中,我们聚焦于3.17这个稳定版,它是截止到提及时的最新版本。 Apache POI 3.17版本是...