Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取excel并使用Java/Apache POI计算总计 脚本:_Java_Apache Poi - Fatal编程技术网

读取excel并使用Java/Apache POI计算总计 脚本:

读取excel并使用Java/Apache POI计算总计 脚本:,java,apache-poi,Java,Apache Poi,我正在开发一个应用程序,它将打开一个excel文件,迭代工作表中的行,并计算每行的数值总和 问题: 考虑以下两种情况: 如果第一种情况的输出为: A -> 15.0 pages. B -> 15.0 pages. T -> 15.0 pages. 为什么第二种情况下的输出是: Tanmay -> 15.0 pages. Abhishek -> 15.0 pages. Bijoy -> 15.0 pages. 不应该是这样吗 Abhishek ->

我正在开发一个应用程序,它将打开一个excel文件,迭代工作表中的行,并计算每行的数值总和

问题: 考虑以下两种情况:

如果第一种情况的输出为:

A -> 15.0 pages.
B -> 15.0 pages.
T -> 15.0 pages.
为什么第二种情况下的输出是:

Tanmay -> 15.0 pages.
Abhishek -> 15.0 pages.
Bijoy -> 15.0 pages.
不应该是这样吗

Abhishek -> 15.0 pages.
Bijoy -> 15.0 pages.
Tanmay -> 15.0 pages.
代码:
包杂;
导入org.apache.poi.hssf.usermodel.HSSFCell;
导入org.apache.poi.hssf.usermodel.HSSFRow;
导入org.apache.poi.hssf.usermodel.HSSFSheet;
导入org.apache.poi.hssf.usermodel.HSSFWorkbook;
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.IOException;
导入java.io.InputStream;
导入java.util.HashMap;
导入java.util.Iterator;
导入java.util.Map;
/**
*由Sandeep于2015年8月6日创建。
*/
公共类TestHarness{
@SuppressWarnings({“unchecked”})
公共静态void main(字符串[]args){
Map stringDoubleMap=新HashMap();
stringDoubleMap=readExcelFile();
对于(Map.Entry:stringDoubleMap.entrySet()){
System.out.println(entry.getKey();
}
}
@抑制警告(“原始类型”)
私有静态映射readExcelFile(){
InputStream文件InputStream=null;
HSSFWorkbook HSSFWorkbook=null;
HSSF表;
HSSFRow row;
HSSF细胞;
迭代器rowIterator,cellIterator;
字符串employeeName=null;
字符串sheetName=null;
双倍合计=0;
Map empMonthlyProdStat=new HashMap();
试一试{
fileInputStream=newfileinputstream(“D:\\Sandeep\\TestExcelWorkbook.xls”);
hssfWorkbook=新的hssfWorkbook(fileInputStream);
sheet=hssfWorkbook.getSheetAt(0);
sheetName=sheet.getSheetName();
rowIterator=sheet.rowIterator();
while(roweiterator.hasNext()){
行=(HSSFRow)行迭代器.next();
cellIterator=row.cellIterator();
while(cellIterator.hasNext()){
cell=(HSSFCell)cellIterator.next();
if(cell.getCellType()==HSSFCell.cell\u TYPE\u字符串){
employeeName=cell.getStringCellValue();
}else if(cell.getCellType()==HSSFCell.cell\u TYPE\u NUMERIC){
总计=总计+单元格。getNumericCellValue();
}else{//处理布尔值、公式、错误
}
}
empMonthlyProdStat.put(员工姓名,总计);
总数=0;
}
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}最后{
试一试{
hssfWorkbook.close();
fileInputStream.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
System.out.println(sheetName+“\n”+“--------------”;
返回empMonthlyProdStat;
}
}

排序已关闭,因为HashMap不会按插入顺序返回条目。试试看

从文件中:

哈希表和链表实现的映射接口,具有可预测的迭代顺序。此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双链接列表。此链表定义了迭代顺序,通常是将关键帧插入贴图的顺序(插入顺序)。请注意,如果将键重新插入地图,则插入顺序不受影响。(如果调用m.put(k,v),而m.containsKey(k)将在调用之前立即返回true,则将密钥k重新插入到映射m中。)


排序已关闭,因为HashMap不按插入顺序返回条目。试试看

从文件中:

哈希表和链表实现的映射接口,具有可预测的迭代顺序。此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双链接列表。此链表定义了迭代顺序,通常是将关键帧插入贴图的顺序(插入顺序)。请注意,如果将键重新插入地图,则插入顺序不受影响。(如果调用m.put(k,v),而m.containsKey(k)将在调用之前立即返回true,则将密钥k重新插入到映射m中。)


排序已关闭,因为HashMap不按插入顺序返回条目。试试看

从文件中:

哈希表和链表实现的映射接口,具有可预测的迭代顺序。此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双链接列表。此链表定义了迭代顺序,通常是将关键帧插入贴图的顺序(插入顺序)。请注意,如果将键重新插入地图,则插入顺序不受影响。(如果调用m.put(k,v),而m.containsKey(k)将在调用之前立即返回true,则将密钥k重新插入到映射m中。)


排序已关闭,因为HashMap不按插入顺序返回条目。试试看

从文件中:

哈希表和链表实现的映射接口,具有可预测的迭代顺序。此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双链接列表。此链表定义了迭代顺序,通常是将关键帧插入贴图的顺序(插入顺序)。请注意,如果将键重新插入地图,则插入顺序不受影响。(如果在m.containsKey(k)时调用m.put(k,v),则将密钥k重新插入到映射m中)
package miscellaneous;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;


/**
 * Created by Sandeep on 8/6/15.
 */
public class TestHarness {

    @SuppressWarnings({ "unchecked" })
    public static void main(String[] args) {
        Map<String, Double> stringDoubleMap = new HashMap<String, Double>();
        stringDoubleMap = readExcelFile();

        for (Map.Entry<String, Double> entry : stringDoubleMap.entrySet()) {
            System.out.println(entry.getKey() + " -> " + entry.getValue() + " pages.");
        }
    }

    @SuppressWarnings("rawtypes")
    private static Map readExcelFile() {

        InputStream fileInputStream = null;
        HSSFWorkbook hssfWorkbook = null;
        HSSFSheet sheet;
        HSSFRow row;
        HSSFCell cell;
        Iterator rowIterator, cellIterator;
        String employeeName=null;
        String sheetName=null;
        double total=0;
        Map<String, Double> empMonthlyProdStat = new HashMap<String, Double>();

       try {
           fileInputStream = new FileInputStream("D:\\Sandeep\\TestExcelWorkbook.xls");
           hssfWorkbook = new HSSFWorkbook(fileInputStream);
           sheet = hssfWorkbook.getSheetAt(0);
           sheetName = sheet.getSheetName();
           rowIterator = sheet.rowIterator();

           while (rowIterator.hasNext()) {
               row = (HSSFRow) rowIterator.next();
               cellIterator = row.cellIterator();
               while (cellIterator.hasNext()) {
                   cell = (HSSFCell) cellIterator.next();

                   if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
                       employeeName = cell.getStringCellValue();
                   } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
                       total = total + cell.getNumericCellValue();
                   } else {// Handle Boolean, Formula, Errors
                   }
               }
               empMonthlyProdStat.put(employeeName, total);
               total = 0;
           }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                hssfWorkbook.close();
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println(sheetName + "\n" + "------------");
        return empMonthlyProdStat;
    }

}