用Java将excel读入哈希表列表

用Java将excel读入哈希表列表,java,Java,我有一个读取excel文件并将其放入列表哈希表的代码。我拥有的代码是: package tests; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Enumeration; import java.util.Hashtable; import java.util.List; import org.

我有一个读取excel文件并将其放入列表哈希表的代码。我拥有的代码是:

  package tests;
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Enumeration;
    import java.util.Hashtable;
    import java.util.List;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.Test;
    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.read.biff.BiffException;
    public class ReadExcelTest {
        public static Hashtable htable=new Hashtable(); 
        public static List<Hashtable<String,String>> exceldata  = new ArrayList<Hashtable<String,String>>();
        public static void main() throws IOException{
            readexcel(System.getProperty("user.dir")+"//src//config//TestData.xls");
        }
    @Test
        public static void readexcel() throws IOException  
        {
        String inputFile=System.getProperty("user.dir")+"//src//config//TestData.xls";
            File inputWorkbook = new File(inputFile);
            Workbook w;
            Cell firstrowelement = null;
            try 
            {
                w = Workbook.getWorkbook(inputWorkbook);
                Sheet sheet = w.getSheet(0);
                for (int j = 0; j <sheet.getRows(); j++) 
                {
                    for (int i = 0; i < sheet.getColumns(); i++) 
                    {
                        firstrowelement = sheet.getCell(i, 0);
                        Cell cell = sheet.getCell(i, j);
    htable.put(firstrowelement.getContents(),cell.getContents());
                        System.out.print(firstrowelement.getContents()+"->"+cell.getContents());
                    }
                    System.out.println(firstrowelement.getContents());
                    exceldata.add(j,htable);
                }
    //printing the list 
                for(Hashtable hash :exceldata)
                {
                    Enumeration e = hash.keys();
                    while (e.hasMoreElements()) {
                      String key = (String) e.nextElement();
                      System.out.println(key + " : " + hash.get(key));
                    }
                }

           } 
            catch (BiffException e) 
            {
                e.printStackTrace();
            }
        }
    }
包测试;
导入java.io.File;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.Enumeration;
导入java.util.Hashtable;
导入java.util.List;
导入org.testng.annotations.BeforeMethod;
导入org.testng.annotations.Test;
进口jxl.Cell;
进口jxl.Sheet;
导入jxl.工作簿;
导入jxl.read.biff.BiffException;
公共类可读性测试{
公共静态哈希表htable=新哈希表();
public static List exceldata=new ArrayList();
公共静态void main()引发IOException{
readexcel(System.getProperty(“user.dir”)+“//src//config//TestData.xls”);
}
@试验
公共静态void readexcel()引发IOException
{
字符串inputFile=System.getProperty(“user.dir”)+“//src//config//TestData.xls”;
文件输入工作簿=新文件(输入文件);
工作手册w;
单元格firstrowelement=null;
尝试
{
w=Workbook.getWorkbook(inputWorkbook);
图纸=w.getSheet(0);

对于(int j=0;j您需要为每一行创建一个新的
htable

实际上,您一直在重复使用和更新单个哈希表


(顺便说一句,我更喜欢HashMap而不是HashTable)。

非常感谢。哈希表数组解决了我的问题