用c#检索Excel自动化函数中的单元格值
我需要检索一个单元格而不是Excel.Range在我的方法。
using Excel = Microsoft.Office.Interop.Excel; ... public object vReadNumber(Excel.Range targetRange) { ... Doing Something With targetRange ... }
任何想法?
Excel.Range.Count属性报告有多less个单元格在该范围内。 例如:
if (targetRange.Count > 1) { throw new ArgumentException(...); }
Excel.Range.Cells [,]索引器从范围的第一个区域返回任何单元格。 但请注意,Excel使用基本1索引(不是基数0)。 因此,要访问该范围的左上angular的单元格,可以使用:
Excel.Range topLeftCell = (Excel.Range)targetRange.Cells[1,1];
请注意,您必须强制转换为上面的Excel.Range,因为Excel.Range.Cells [,]索引器将返回一个Excel.Range对象强制转换为System.Object。
当范围由单个单元格组成时,您还应该注意Excel.Range.Value属性将返回一个primefaces值,如double,string,boolean等。 它将返回一个二维基数组1,但是,如果范围的第一个区域包含多个单元格。 例如:
if (targetRange.Count = 1) { object myValue = targetRange.get_Value(Type.Missing); MessageBox.Show(myValue.ToString()); } else { object[,] myArray = targetRange.get_Value(Type.Missing); for(int row = 1; row <= myValue.GetLength(0); row++) { for(int column = 1; column <= myValue.GetLength(1); column++) { MessageBox.Show(myArray[row, column].ToString()); } } }
希望这可以帮助!
麦克风
// nb cell is derived from a WorkSheet object xlSheet // by cell = xlSheet.Cells[row, col] public T CellValue<T>(object cell) { T result = default(T); try { Range rg = (Range)cell; object value = rg.Value2; if (value != null) { if (typeof(T) == typeof(DateTime)) { DateTime dateValue; if (value is double) { dateValue = DateTime.FromOADate((double)value); } else { DateTime.TryParse((string)value, out dateValue); } result = (T)Convert.ChangeType(dateValue, typeof(T)); } else result = (T)Convert.ChangeType(value, typeof(T)); } } catch { result = default(T); } return result; }
- 将两种types的resx文件中的键和值导出到Excel c#.net中
- “无法findtypes或命名空间名称”OfficeOpenXml“错误
- CSV实际上是…分号分隔值…(AZERTY上的Excel导出)
- 无法在Windows XP中加载文件或程序集microsoft.office.interop.excel版本15.0.0.0
- 如何使用ClosedXML在同一个Excel单元格中使用不同颜色的文本?
- From子句Excel中的语法错误
- 如何通过在List C#中传递checkbox名称来在Winform上创builddynamiccheckbox?
- 将列索引转换为Excel列名称
- Excel图表导出到PowerPoint导出