【发布时间】:2018-10-31 21:54:06
【问题描述】:
我正在尝试使用 Excel 互操作 C# 库将单元格格式从一个单元格复制到一系列其他单元格。为此,我使用以下代码:
var excelWrapper = new Application();
excelWrapper.DisplayAlerts = false;
var workBook = excelWrapper.Workbooks.Open(@"C:\myFile.xlsx");
Worksheet ws = workBook.Sheets[1] as Worksheet;
Range formatSource = ws.Cells[8, 1] as Range; //cell containing formatting that I want to apply
Range startCell = ws.Cells[9, 1] as Range; //first cell to format
Range endCell = ws.Cells[300, 1] as Range; //last cell to format
Range formatTarget = ws.Range[startCell, endCell];
//Copy formatting from source cell to destination range
formatSource.Copy();
formatTarget.PasteSpecial(XlPasteType.xlPasteFormats, XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
如您所见,我将单元格 [8,1] 的格式应用于整个范围 [9,1] -> [300,1]。
我遇到的问题是,这仅将格式应用于前约 80 个左右的单元格,之后不应用格式。特别是,格式化在第 91 行之后停止,因此它仅应用于该范围内 291 个单元格中的前 84 个。
我不明白为什么格式不适用于我选择的整个范围,而仅适用于前 84 个单元格。我在这里想念什么?请注意,我将样式应用到的范围开始为空(我仅在设置格式后才写入数据),因此这不是来自单元格中的数据的问题。
【问题讨论】:
标签: c# excel excel-interop