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

获取Excel中单元格任意数据
每月反馈表
说明:有学生基本信息,授课教师评价,学生的问答,排版在Excel中跟浏览器的显示方式一样,我想读取的是任意单元格的数据。

------解决方案--------------------
把它变成datetable就随你操作了.
------解决方案--------------------
自定义DateGrid之类的数据容器,然后添加Excel为数据源,接着就为所欲为了。
------解决方案--------------------
如果是2003或以下的版本可以直接读取Excel单元格,google一下到处都是
------解决方案--------------------
我做过的一个例子,红色代码为获取excel单元格的数据。
C# code

 for (int colIndex = 1; colIndex < workSheet.UsedRange.Cells.Columns.Count; colIndex++)//循环读取Excel列
            {
                ColNum = convertToCharacter(colIndex);
                string colomtext = "";
                if (workSheet.get_Range(ColNum + "3", Missing.Value).Value2 != null)
                {
                   [color=#FF0000] colomtext = workSheet.get_Range(ColNum + "3", Missing.Value).Value2.ToString(); //获[/color]取字母列名称
                }
                switch (colomtext)//
                {
                    case "&名称":
                        nameIndex = colIndex;
                        workSheet.get_Range(ColNum + "3", Missing.Value).Value2 = "名称";

                        break;
                    case "&件数":
                        numIndex = colIndex;
                        workSheet.get_Range(ColNum + "3", Missing.Value).Value2 = "件数";
                        break;
                    case "&数量":
                        qtyIndex = colIndex;
                        workSheet.get_Range(ColNum + "3", Missing.Value).Value2 = "数量";
                        break;
                    case "&单价":
                        priceIdex = colIndex;
                        workSheet.get_Range(ColNum + "3", Missing.Value).Value2 = "单价";
                        break;
                    case "&金额":
                        sumIndex = colIndex;
                        workSheet.get_Range(ColNum + "3", Missing.Value).Value2 = "金额";
                        break;
                }
            }
            //获取顾客名称
            if (cbxCustomer.Text != null)
            {
                workSheet.Cells[2, 2] = this.cbxCustomer.Text.ToString();
            }