/// <summary> /// 지정된 영역의 값을 설정합니다. /// </summary> /// <param name="rangeAddress">영역 주소.</param> /// <param name="sourceArray">당 범위에 기록할 값이 포함된 컬랙션. 영역 주소를 계산하여, 행 우선 2차원 배열로 재구성 됩니다.</param> public void SetValue(RangeAddress rangeAddress, IList sourceCollection) { int rowCount = rangeAddress.RowSpan; int colCount = rangeAddress.ColSpan; object[,] valArray = new object[rowCount, colCount]; int idx = 0; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { for (int colIndex = 0; colIndex < colCount; colIndex++) { valArray[rowIndex, colIndex] = sourceCollection[idx++]; } } SetValue(rangeAddress, valArray); }
/// <summary> /// 지정된 영역의 값을 삭제합니다. /// </summary> /// <param name="rangeAddress">삭제할 영역 주소.</param> /// <param name="endAddress"></param> public void Delete(RangeAddress rangeAddress) { _xlSheet.get_Range(rangeAddress.From.Address, rangeAddress.To.Address).Delete(Type.Missing); }
/// <summary> /// 지정된 영역의 값을 읽습니다. /// </summary> /// <param name="rangeAddress">영역 주소.</param> /// <returns>지정된 범위의 값을 포함한 2차원 배열(행, 열)</returns> public object[,] GetValue(RangeAddress rangeAddress) { return(GetValue(rangeAddress.From, rangeAddress.To)); }
/// <summary> /// 지정된 영역의 값을 설정합니다. /// </summary> /// <param name="rangeAddress">영역 주소.</param> /// <param name="sourceArray">기록할 값을 포함한 2차원 배열. 배열의 값은 Worksheet에 [행, 열]로 기록됩니다.</param> public void SetValue(RangeAddress rangeAddress, object[,] sourceArray) { _xlSheet.get_Range(rangeAddress.From.Address, rangeAddress.To.Address).Value2 = sourceArray; }
/// <summary> /// 지정된 영역에 이름을 설정합니다. /// </summary> /// <param name="namedRangeName">영역 이름.</param> /// <param name="rangeAddress">영역 주소.</param> public void SetNamedRanges(string namedRangeName, RangeAddress rangeAddress) { _xlSheet.Names.Add(namedRangeName, _xlSheet.get_Range(rangeAddress.From.Address, rangeAddress.To.Address), true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); }