java - 如何修改代码,使其只打印单元格 E 和 F?

标签 java excel

我在 java 上写了一个小程序来读取 excel,但是如何修改它以便它只打印某些单元格?

public class Read
{
    public static void main(String [] args) throws Exception
    {
        File f = new File ("/users/Me/Documents/Test.xls");
        Workbook wb = Workbook.getWorkbook(f);
        Sheet s = wb.getSheet(0);
        int row = s.getRows();
        int col = s.getColumns();

        for(int i = 0; i<row;i++)
        {
            for(int j = 0; j<col;j++)
            {
                Cell c = s.getCell(j,i);
                System.out.print(c.getContents()+"\t");
            }
        }

        System.out.println("");
    }

}

最佳答案

如果您想打印每个“E”单元格,那么您可能想要删除列循环但保留行循环并将“E”的索引硬编码到 getCell(x,y) 函数中。我们知道,如果我们使用代码,“E”在字母表中是索引 4,

public static void main(String [] args) throws Exception{
    File f = new File ("/users/Me/Documents/Test.xls");
    Workbook wb = Workbook.getWorkbook(f);
    Sheet s = wb.getSheet(0);
    int row = s.getRows();
    int col = s.getColumns();
    for(int i = 0; i<row;i++){
            Cell c = s.getCell(4,i);
            System.out.print(c.getContents()+"\t");
        }
    System.out.println("");
}

只会打印“E”列中的列。

对于你的后续问题,如何检查一个单元格的内容是否大于另一个...你的主要问题是你正在比较两个字符串,以检查一个值是否大于另一个您必须将字符串解析为 int(或其他数据类型)。在 Java 中,这可以通过转换或使用数据类型函数提供给我们的方法来完成。下面是一个示例,我们比较了单元格 C1 和 E1。

    Cell c = s.getCell(2,1);
    Cell e = s.getCell(4,1);
    if(Integer.parseInt(c.getContents()) > Integer.parseInt(e.getContents())){
        //Do something
    }

关于java - 如何修改代码,使其只打印单元格 E 和 F?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30009462/

相关文章:

excel - vba - Excel 2010。局部变量未在我的函数中初始化

android - 在错误的excel表中插入图像?

java - JFrame 在收到事件后不绘制

java - Hibernate 条件查询以匹配所有子集合元素

java - 为什么 JCL 中的类不在其 `@Override` 方法上显式使用 `toString()`?

java - 只查找从特殊字符 java 开始的第一个单词

java - 长 for 循环压垮了我的 Android 应用程序

excel - 非 Office 365 上 FILTER 功能的替代方案

arrays - 数组大小限制在 VBA 中传递数组参数

vba - 将范围设置为 "False"并根据值更改单元格的颜色