首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于excel的get_Range方法解决方法

2012-06-12 
关于excel的get_Range方法我首先sheet上所有有内容的单元格的范围得到,比如:Range range xlsheet.get_Ra

关于excel的get_Range方法
我首先sheet上所有有内容的单元格的范围得到,比如:Range range = xlsheet.get_Range("A1","E10")
然后从这个range里要把每个单元格的数据再取出来使用,用了range[1,1].value2为什么不行,运行的时候总是出错,另外试了range.cells[1,1].value 也一样不行

[解决办法]
.value2取出来的值是单元格类型,若是字符串类型,要.value2.ToString();
当然若你的get_Range范围内的单元格没有合并的话,返回的会是一个代表你的单元格对象范围信息的值,类似system[object,object]这种样子。

若是一个单元格那肯定是可以的
Range range= .get_Range("A1","A1"); 
string str=range.value2.tostring().trim();

trim()是去除多余空格,最好加上
[解决办法]
师范代码

C# code
        /// <summary>        /// 读取一个连续区域的Cell的值(矩形区域,包含一行或一列,或多行,多列),返回一个一维字符串数组。        /// </summary>        /// <param name="StartCell">StartCell是要写入区域的左上角单元格</param>        /// <param name="EndCell">EndCell是要写入区域的右下角单元格</param>        /// <returns>值的集合</returns>        public string[] getCellsValue(string StartCell, string EndCell)        {            string[] sValue = null;            //try            //{            xlRange = (Excel.Range)xlSheet.get_Range(StartCell, EndCell);            sValue = new string[xlRange.Count];            int rowStartIndex = ((Excel.Range)xlSheet.get_Range(StartCell, StartCell)).Row;  //起始行号            int columnStartIndex = ((Excel.Range)xlSheet.get_Range(StartCell, StartCell)).Column; //起始列号            int rowNum = xlRange.Rows.Count;     //行数目            int columnNum = xlRange.Columns.Count;    //列数目            int index = 0;            for (int i = rowStartIndex; i < rowStartIndex + rowNum; i++)            {                for (int j = columnStartIndex; j < columnNum + columnStartIndex; j++)                {                    //读到空值null和读到空串""分别处理                    sValue[index] = ((Excel.Range)xlSheet.Cells[i, j]).Text.ToString();                    index++;                }            }            //}            //catch (Exception e)            //{            //    CloseXlApp();            //    throw new Exception(e.Message);            //}            return (sValue);        }
[解决办法]
string ss = ((Microsoft.Office.Interop.Excel.Range)xSheet.Cells[1, 1]).Value2.ToString();

另外Excel没有[i,j](i=0或者j=0);

热点排行