日期:2014-05-18 浏览次数:22114 次
/// <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);