日期:2014-05-20  浏览次数:20807 次

用java实现一个方法来求出一个分类下面包括哪些品牌
我有一份execl文件,
例如:
产品名称    分类    品牌   
白酒        酒      茅台
白酒        酒      洋河
男装外套    衣服    森马   
女装外套    衣服    森马
等等,数据很长。
我想实现
酒:茅台,洋河
衣服:森马
这样的功能。。。
有谁能帮忙实现一下,100分送上。。

------解决方案--------------------

package com.djk.design.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

/**
 * 客户端测试方法
 * @author djk
 *
 */
public class OperatorExeclTest 
{
public static void main(String[] args) throws Exception 
{
OperatorExecl operatorExecl = new DjkOperatorExecl();
Map<String,Set<String>> map= operatorExecl.getResult("E:/my.xls");
System.out.println(map);
}
}

/**
 * 操作execle文件
 * @author djk
 *
 */
interface  OperatorExecl
{
Map<String,Set<String>> getResult(String path) throws Exception ;
}

/**
 * 实现类
 * @author djk
 *
 */
class DjkOperatorExecl implements OperatorExecl
{
@Override
public Map<String, Set<String>> getResult(String path) throws Exception 
{
Set<String> list = null;
Map<String,Set<String>> map = new HashMap<String, Set<String>>();


Workbook book = Workbook.getWorkbook(new File(path));
       // 获得第一个工作表对象
        Sheet sheet = book.getSheet(0);
        //获得行数
        int rows = sheet.getRows();
        //获得列数数
        int columns = sheet.getColumns();
        String resultkey = null;
        String resultvalue = null;
        for(int i = 1;i<rows;i++)
        {
         for(int j = 0;j<columns;j++)
         {
                Cell cell1 = sheet.getCell(j, i);
                if(MyConstant.TWOCOLUMN.getValue() ==j)
                {
                 resultkey = cell1.getContents();
                }