private String[] getMergedCells() throws Exception
    {
        String[] array = null;
        Row r = null;
        for ( int i=0;i<rows.size();i++ )
        {
            r = rows.get(i);
            if ( r.versions.nextSetBit(base)==base )
                break;
            else
                r = null;
        }
        if ( r != null )
        {
            array = new String[r.cells.size()];
            for ( int i=0;i<r.cells.size();i++ )
            {
                FragList fl = r.cells.get(i);
                if ( fl.merged  )
                {
                    StringBuilder sb = new StringBuilder();
                    for ( int j=0;j<fl.fragments.size();j++ )
                    {
                        Atom a = fl.fragments.get(j);
                        if ( a instanceof Fragment )
                            sb.append( ((Fragment)a).contents );
                        else 
                            throw new Exception("embedded table in merged cell");
                    }
                    array[i] = sb.toString();
                }
                else
                    array[i] = null;
            }
        }
        return array;
    }