C#でgoogle spreadsheetのgidをworksheetIdに変換する

public string long36ToString(long num)
{
    string char36 = "0123456789abcdefghijklmnopqrstuvwxyz";

    string converted = "";
    long m;
    int n;
    for (int i = 7; i >= 0; i--)
    {
        m = (long)Math.Pow(36, i);
        n = (int)(num / m);
        m = n * m;
        num -= m;
        converted += char36[n];
     }
     return converted.TrimStart('0');
}

public string gidToWorksheetId(long gid)
{
    long xorval = gid > 31578 ? 474 : 31578;
    string letter = gid > 31578 ? "o" : "";
    return letter + long36ToString(gid ^ xorval);
}

long gid = 752214515;
string wsId = gidToWorksheetId(gid);
Console.WriteLine(wsId);

参考

GoogleSpreadSheetのgidが分からなすぎだった件がある程度解決できたのでまとめてみたメモ。2015年1月版。 – Qiita