Making Excel able to convert timezones

A few months ago at work I had the need to make Excel able to support converting a date and time into another timezone. Joten tein joitakin Googling ja löysi yleisin vastaus oli lisätä / vähentää tuntia. Tällainen toimii, jos nämä kaksi aluetta eivät käytä kesäaikaa, mutta en voinut taata sitä.

tämän jälkeen on muutamia viittauksia siihen, että paikallisesta ajasta voidaan muuntaa UTC: hen kernel32: n avulla.DLL. Hienoa, jos ne ovat kaksi vyöhykettä, joiden kanssa haluat työskennellä, tai hienoa, jos kaikki ilmaistaan korvauksina UTC: stä.

kumpikaan näistä ei sopinut käyttötapaukseeni. Kun ottaa altistuminen ihana kirjastot asioita, kuten Java, PHP ja Python halusin pystyä ottamaan päivämäärän aikaa ja tietää, mitä aikavyöhyke se on muuntaa sen muihin aikavyöhyke. Halusin, että kesäaika otetaan huomioon. Onko se liikaa pyydetty?

niin ajattelin, että mitä jos Pythonia voisi ajaa Excelissä. Tämä ongelma ratkaistaisiin helposti. No jotain pikaista Googlailua ja löysin xl-Siivet (https://www.xlwings.org/). Kuin onni olisi se tämä pieni kauneus toimii mainostettu. Voit todellakin ajaa Pythonia Excelistä. Tämä on mahtavaa. Ei vain, että se toimii Excel 2003 joka oli versio olin jumissa käyttää tuolloin. Bonuspisteitä työskentelystä ympäristössä, jota ei ole nimenomaisesti mainittu tuetuksi.

niinpä noudatin asennusohjeita. Kaikki meni dokumentoidusti, vaikka olin Excelissä 2003 (dark ages I know). Näytesovellus toimi kuin herkkupala. Sitten siitä tuli Python-ohjelmoinnin harjoitus. Tässä on pyton, johon päädyin.

from datetime import datetime as dt
from dateutil import tz

import xlwings as xw

@xw.func
def convtz(origDate, fromTZName, toTZName):
from_zone = tz.gettz(fromTZName)
to_zone = tz.gettz(toTZName)
tempDate = origDate.replace(tzinfo=from_zone)
return tempDate.astimezone(to_zone)

In Excel you can then use a function such as

convtz(‘7/25/2017 05:59:03 AM”, “Europe / Istanbul”,”Australia/Melbourne”)

So if you’re ever in a bind and require the ability to convert between Timezones in Excel like I did. Anna xl-Wingsille ja Pytonille mahdollisuus.

Vastaa

Sähköpostiosoitettasi ei julkaista.