zhao
2021-07-07 2fdf959ac739edd6de84aa8053b8b9683dce8e8b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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();
        }
    }
}