如何将Excel范围转换为List <String>?
我想从一个Excel范围的数据可以混合types(string,双打等)的string列表。 我试着用这个:
List<string> rangeToList(Excel.Range inputRng) { object[,] cellValues = (object[,])inputRng.Value2; List<string> lst = cellValues.Cast<string>().ToList(); return lst; }
但Cast<string>
返回这个错误:
Unable to cast object of type 'System.Double' to type 'System.String'
我怎样才能将这个对象数组转换成我想要的列表?
强制转换不会隐式转换为string,但可以在每个对象上调用ToString
:
List<string> lst = cellValues.Cast<object>().Select(o => o.ToString()).ToList();
首先,您应该投射object
来创buildobject
列表,之后您应该使用ConvertAll
( msdn )将object
转换为string
。
List<string> rangeToList(Microsoft.Office.Interop.Excel.Range inputRng) { object[,] cellValues = (object[,])inputRng.Value2; List<string> lst = cellValues.Cast<object>().ToList().ConvertAll(x=> Convert.ToString(x)); return lst; }