比如说Excel格式如下
  A    B     C      D
1 学校  姓名  性别   课程
2                   高数
3 交大  陈浩   男    外语
4                   物理其中:“交大”“陈浩”“男”各占了三行,我是把类似这样的EXCEL文件存到一个二维数组中,方便以后读取,但是在读取合并单元格的时候,只读取了第一行,合并单元格的后几行为空值了,这样的合并单元格该怎么读取呢?多谢

解决方案 »

  1.   

    不知道你是用什么方式读取EXCEl的 用的是 office组件吗? 这个貌似无所不能,但是性能不好.第三方开源组件NOPI 挺好,你去百度一下 有现成的例子 专门合并单元格的。(生成工资条)html方式文件太大。。
      

  2.   

    我是这样做的,首先判断属于该人的信息共有几条,count一下其实也就是获得了要合并的行数,然后根据count值采用如下方法,就算count值为1,也一样可以用,只是要计算好beginrowindex等几个参数        public void MergeCells(int sheetIndex, int beginRowIndex, int beginColumnIndex, int endRowIndex, int endColumnIndex, string text)
            {
                if (sheetIndex > this.WorkSheetCount)
                {
                    this.KillExcelProcess();
                    throw new Exception("索引超出范围,WorkSheet索引不能大于WorkSheet数量!");
                }            workSheet = (Excel.Worksheet)workBook.Worksheets.get_Item(sheetIndex);
                range = workSheet.get_Range(workSheet.Cells[beginRowIndex, beginColumnIndex], workSheet.Cells[endRowIndex, endColumnIndex]);            range.ClearContents();  //先把Range内容清除,合并才不会出错
                range.MergeCells = true;
                range.Value2 = text;
                range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                range.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
            }
      

  3.   

    ---------楼主资料---------
    登录名:fengyun595
    总技术分:0
    总技术排名:451337
    ---------结贴情况---------
    截至:2011-03-22 10:42:25
    总发帖:1个
    正常结贴:0个
    未结贴:1
    结贴率:0.00%
    评语:楼主,我无语!
    --------------------------
      

  4.   

    我是将这个EXCEL文件的单元格的内容导入到一个二维数组里面,然后再根据二维数组生成相应的xml文件,不过就是由于合并单元格的原因,只能读取第一行,这样后几行都为空了,还有就是我得计算单元格的分支,这样才能将分支插入到xml文件中的子节点中去。您写的是将单元格合并?我是讲合并的单元格读出来,计算它的分支数。那该怎么做呢?