using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Timers; using Autodesk.Windows; using OfficeOpenXml; namespace Szmedi.Test { public static class GlobalVariables { public static IntPtr RevitWindowPtr => ComponentManager.ApplicationWindow; public static string AddInPath = typeof(GlobalVariables).Assembly.Location; public static string DirAssembly = Path.GetDirectoryName(AddInPath); public static Timer Timer { get; } = new(); public static void TrimLastEmptyRows(this ExcelWorksheet worksheet) { while (worksheet.IsLastRowEmpty()) { worksheet.DeleteRow(worksheet.Dimension.End.Row, 1); } } public static bool IsLastRowEmpty(this ExcelWorksheet worksheet) { List empties = []; for (int index = 1; index <= worksheet.Dimension.End.Column; index++) { object value = worksheet.Cells[worksheet.Dimension.End.Row, index].Value; empties.Add(value == null || string.IsNullOrWhiteSpace(value.ToString())); } return empties.All(e => e); } } }