public static void WriteLinks(this Workbook wb, ILinksAnalysis links) { if (wb == null) { throw new ArgumentNullException(nameof(wb)); } if (links == null) { throw new ArgumentNullException(nameof(links)); } wb.DeleteTargetWorksheet(LinksSheetName); wb.DeleteTargetWorksheet(FilesSheetName); wb.DeleteTargetWorksheet(ErrorsSheetName); if (links.Links.Count == 0 && links.Errors.Count == 0) { MessageBox.Show("No external links found!", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } else { var wsLinks = wb.CreateTargetWorksheet(LinksSheetName); var wsFiles = wb.CreateTargetWorksheet(FilesSheetName); var wsErrors = wb.CreateTargetWorksheet(ErrorsSheetName); wsLinks.WriteLinksAnalysis(links); wsFiles.WriteLinksFiles(links.Files); wsErrors.WriteLinksErrors(links.Errors); wb.Application.StatusBar = false; } }
public static void WriteLinksAnalysis(this Worksheet ws, ILinksAnalysis links) { if (ws == null) { throw new ArgumentNullException(nameof(ws)); } if (links == null) { throw new ArgumentNullException(nameof(links)); } if (links.Links.Count > 0) { var calculation = ws.Application.Calculation; try { ws.Application.Calculation = XlCalculation.xlCalculationManual; ws.Application.ScreenUpdating = false; var links2D = links.Links; var MaxCol = links2D.ColsCount(); var firstCell = ws.Cells[3, 1]; var lastCell = ws.Cells[links2D.RowsCount() + 2, MaxCol]; var sheetData = ws.Range[firstCell, lastCell] as Range; ws.Columns[MaxCol].EntireColumn.NumberFormat = "@"; // Formula column links2D.FastCopyToRange(sheetData); ws.InitializeTargetWorksheet(links2D.RowsCount() + 2, new List <string>() { "Target FullName", "Target Path", "Target FileName", "Target Worksheet", "Target Cell", "Link Type", "Source FullName", "Source Path", "Source FileName", "Source Worksheet", "Source Cell", "Source Formula" }); } finally { ws.Application.ScreenUpdating = true; ws.Application.Calculation = calculation; } } }