.NET 3.x Заполнить все ячейки Excel одной формулой - C#
Формулировка задачи:
Всем привет!
Собственно, как можно распостранить формулу на все ячейки в столбце т.е. как в экзеле тянем формулу на все ячейки(
Для одной ячейки сделал, а на остальные не нашел(
В данном случае формула берет свои данные с листа1 и выводится на листе 2.
Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); Excel.Workbook xlWb = xlApp.Workbooks.Open(openFileDialog1.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); //xlWb.Worksheets.Add(After: xlWb.Sheets[xlWb.Sheets.Count]); xlWb.Worksheets.Copy(After: xlWb.Sheets[xlWb.Sheets.Count]); Excel.Worksheet xlWs = (Microsoft.Office.Interop.Excel.Worksheet)xlWb.Sheets[2]; // UsedRange - использованный диапазон. Находим последнюю заполненную строку и столбец. int fullRow = xlWs.UsedRange.Rows.Count; int fullCol = xlWs.UsedRange.Columns.Count; Range rng = xlWs.Range[xlWs.Cells[1,1], xlWs.Cells[fullRow, fullCol]]; object cols = new object[] { 7, 9 }; rng.RemoveDuplicates(cols, XlYesNoGuess.xlNo); int lastRow = xlWs.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing).Row; xlWs.Range["H2"].Formula = "=СУММЕСЛИМН(Лист1!H2:H1640;Лист1!G2:G1640;G2;Лист1!I2:I1640;I2)"; double smm = xlApp.WorksheetFunction.Sum(xlWs.Range["H:H"]); //xlWs.Cells[lastRow, 8] = smm; xlApp.Visible = true;
Решение задачи: «.NET 3.x Заполнить все ячейки Excel одной формулой»
textual
Листинг программы
xlWs2.Range["H"+(lastRow+1)].Formula = "=СУММ(H2:H" + lastRow.ToString() + ")";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д