Comment convertir Google feuille de calcul feuille de calcul string id d'index entier (GID)?
À l'exportation google feuille de calcul feuille de calcul au format CSV, entier feuille de calcul de l'indice(GID) est nécessaire pour être transmis.
https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=%s&gid=%d&exportFormat=csv
Mais, d'où viennent ces informations? Avec gdata.les feuilles de calcul.client, j'ai pu trouver quelques id de chaîne de feuille de calcul comme "oc6, ocv, odf".
client = gdata.spreadsheets.client.SpreadsheetsClient()
feed = client.GetWorksheets(spreadsheet, auth_token=auth_token)
Et il repasse en-dessous de l'atome XML. (une partie) de
<entry gd:etag=""URJFCB1NQSt7ImBoXhU."">
<id>https://spreadsheets.google.com/feeds/worksheets/0AvhN_YU3r5e9dGpTWGx3UVU3MTczaXJuNEFKQjMwN2c/ocw</id>
<updated>2012-06-21T08:19:46.587Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-21T08:19:46.587Z</app:edited>
<category scheme="http://schemas.google.com/spreadsheets/2006" term="http://schemas.google.com/spreadsheets/2006#worksheet"/>
<title>AchievementType</title>
<content type="application/atom+xml;type=feed" src="https://spreadsheets.google.com/feeds/list/0AvhN_YU3r5e9dGpTWGx3UVU3MTczaXJuNEFKQjMwN2c/ocw/private/full"/>
<link type="application/atom+xml" href="https://spreadsheets.google.com/feeds/cells/0AvhN_YU3r5e9dGpTWGx3UVU3MTczaXJuNEFKQjMwN2c/ocw/private/full"/>
<link type="application/atom+xml" href="https://spreadsheets.google.com/tq?key=0AvhN_YU3r5e9dGpTWGx3UVU3MTczaXJuNEFKQjMwN2c&sheet=ocw"/>
<link type="application/atom+xml" href="https://spreadsheets.google.com/feeds/worksheets/0AvhN_YU3r5e9dGpTWGx3UVU3MTczaXJuNEFKQjMwN2c/private/full/ocw"/>
<link type="application/atom+xml" href="https://spreadsheets.google.com/feeds/worksheets/0AvhN_YU3r5e9dGpTWGx3UVU3MTczaXJuNEFKQjMwN2c/private/full/ocw"/>
<gs:rowCount>280</gs:rowCount>
<gs:colCount>28</gs:colCount>
</entry>
Aussi j'ai essayé avec la feuille de paramètre, mais a échoué avec "Feuille non Valide" erreur.
https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=%s&sheet=XXX&exportFormat=csv
Je suppose qu'il devrait y avoir une fonction magique, mais ne pouvait pas le trouver. Comment puis-je les convertir en entier id?? Ou puis-je exporter la feuille de calcul avec string id?
EDIT: je viens de convertir un tableau avec python. SALE, mais de travail 🙁
GID_TABLE = {
'od6': 0,
'od7': 1,
'od4': 2,
'od5': 3,
'oda': 4,
'odb': 5,
'od8': 6,
'od9': 7,
'ocy': 8,
'ocz': 9,
'ocw': 10,
'ocx': 11,
'od2': 12,
'od3': 13,
'od0': 14,
'od1': 15,
'ocq': 16,
'ocr': 17,
'oco': 18,
'ocp': 19,
'ocu': 20,
'ocv': 21,
'ocs': 22,
'oct': 23,
'oci': 24,
'ocj': 25,
'ocg': 26,
'och': 27,
'ocm': 28,
'ocn': 29,
'ock': 30,
'ocl': 31,
'oe2': 32,
'oe3': 33,
'oe0': 34,
'oe1': 35,
'oe6': 36,
'oe7': 37,
'oe4': 38,
'oe5': 39,
'odu': 40,
'odv': 41,
'ods': 42,
'odt': 43,
'ody': 44,
'odz': 45,
'odw': 46,
'odx': 47,
'odm': 48,
'odn': 49,
'odk': 50,
'odl': 51,
'odq': 52,
'odr': 53,
'odo': 54,
'odp': 55,
'ode': 56,
'odf': 57,
'odc': 58,
'odd': 59,
'odi': 60,
'odj': 61,
'odg': 62,
'odh': 63,
'obe': 64,
'obf': 65,
'obc': 66,
'obd': 67,
'obi': 68,
'obj': 69,
'obg': 70,
'obh': 71,
'ob6': 72,
'ob7': 73,
'ob4': 74,
'ob5': 75,
'oba': 76,
'obb': 77,
'ob8': 78,
'ob9': 79,
'oay': 80,
'oaz': 81,
'oaw': 82,
'oax': 83,
'ob2': 84,
'ob3': 85,
'ob0': 86,
'ob1': 87,
'oaq': 88,
'oar': 89,
'oao': 90,
'oap': 91,
'oau': 92,
'oav': 93,
'oas': 94,
'oat': 95,
'oca': 96,
'ocb': 97,
'oc8': 98,
'oc9': 99
}
- J'essaie de faire plus ou moins la même chose. Dans mon cas, je suis par programmation de générer des feuilles de calcul et j'ai besoin de stocker les liens vers des feuilles de calcul dans une base de données distincte.
- Bon, Google. C'est une blague, non? C'est très drôle. Maintenant, pouvons-nous s'il vous plaît avoir la bonne feuille de calcul des indices au lieu de ce truc de dingue?...
- Si quelqu'un est confronté à la même question, voici une réponse simple: code.google.com/p/gdata-python-client/issues/detail?id=698#c6
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé votre question à la recherche d'une solution au même problème, et a été surpris que ceux de la feuille de calcul Id correspondent en fait 1:1 à
gids
- a l'origine, je suppose qu'ils ont été assignés de façon indépendante, au lieu d'être un exercice de dissimulation.J'ai été en mesure de trouver un légèrement solution de nettoyage par reverse-engineering de la formule qu'ils utilisent pour produire de la feuille de calcul les Id de votre table:
Ainsi, certains de Python pour aller à partir d'une feuille de calcul de l'ID de
gid
:C'est encore sale, mais les travaux de Gid supérieur à 99 sans nécessiter de géant tables. Au moins tant qu'ils ne changent pas la logique de génération (qui ne sera probablement pas, comme elle allait se briser existant Id que les gens l'utilisent déjà).
10
en binaire. Voilà comment j'ai compris que ces cordes étaient en réalité des chiffres. Ils contiennent toutes les lettres, j'ai donc pensé qu'il doit être la base-36. Trouver le XOR facteur était simple à partir de là.Ce code fonctionne avec la nouvelle version de Google Sheets.
Je ne peux pas ajouter un commentaire à Wasilewski post car apparemment je manque de réputation voici donc les deux fonctions de conversion en Javascript basé sur Wasilewski réponse:
C'est une Java adaptation de Hibou du code qui fonctionne à la fois avec la nouvelle version de Google Sheets et avec l'héritage des feuilles de calcul Google.
C'est un Clojure adaptation de Hibou et de Julie, code qui devrait fonctionner à la fois avec la nouvelle version de Google Sheets et avec l'héritage des feuilles de calcul Google.
Si vous êtes à l'aide de Python avec gspread, voici ce que vous devez faire:
Je vais probablement ouvrir un PR pour cela.