2012-02-14 4 views
0

Есть ли событие, которое может обнаружить, когда количество активных строк Excel-листа увеличивается на 1? Если нет, есть ли другой способ сделать это?Excel C# event new row

+1

Если вы используете Interop, чем прекратить его использование. Используйте NPOI. –

+0

и что такое NPOI? –

+0

http://npoi.codeplex.com/ «POI - это проект с открытым исходным кодом, который может помочь вам читать/писать файлы xls, doc, ppt. Он имеет широкое применение». – RvdK

ответ

0

Возможно, ближайшая вещь - SelectionChange event. Вы можете получить Rows.Count свойство Target аргумента:

using Excel = Microsoft.Office.Interop.Excel; 

private int rowsBefore = 0; 

void SomeMethod() { 
    Excel.Application app = new Excel.Application(); 
    Excel.Workbook wb = app.Workbooks.Add(); 
    Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[0]; 
    ws.SelectionChange += new Excel.DocEvents_SelectionChangeEventHandler(ws_SelectionChange); 
} 

void ws_SelectionChange(Excel.Range Target) { 
    int rowsNow = Target.Rows.Count; 
    if (rowsNow > rowsBefore) { 
     // do stuff 
    } 
    rowsBefore = rowsNow; 
} 
+0

работает для меня! Благодарю. – scifirocket