using System; using System.Collections.Generic; using System.Text; namespace HH.WMS.Utils.NPOI.SS.Formula.PTG { using HH.WMS.Utils.NPOI.SS.Formula; public class ExternSheetNameResolver { public static String PrependSheetName(IFormulaRenderingWorkbook book, int field_1_index_extern_sheet, String cellRefText) { ExternalSheet externalSheet = book.GetExternalSheet(field_1_index_extern_sheet); StringBuilder sb; if (externalSheet != null) { String wbName = externalSheet.GetWorkbookName(); String sheetName = externalSheet.GetSheetName(); sb = new StringBuilder(wbName.Length + sheetName.Length + cellRefText.Length + 4); SheetNameFormatter.AppendFormat(sb, wbName, sheetName); } else { String sheetName = book.GetSheetNameByExternSheet(field_1_index_extern_sheet); sb = new StringBuilder(sheetName.Length + cellRefText.Length + 4); if (sheetName.Length < 1) { // What excel does if sheet has been deleted sb.Append("#REF"); // note - '!' added just once below } else { SheetNameFormatter.AppendFormat(sb, sheetName); } } sb.Append('!'); sb.Append(cellRefText); return sb.ToString(); } } }