drag’n’drop wygląda jakoś bardziej naturalnie… ale co tam. niech będzie po polsq (;
taka sytuacja…
spora część mojej pracy to zbieranie i analiza danych z systemów – AD, AAD, Ex, EXO, SfB i tak dalej. piszę sobie do tego pałerszelki i wrzucam to do CSV. no niestety – ale cały czas nie mogę się przestawić na jakąś sensowną bazę danych, ale to nie na dziś. potem takie CSVki łatwo jest otworzyć, edytować, analizować w Excel – oczywiście już jako xlsx. wszyscy Excel znają (LoL, raczej potrafią go otworzyć i coś wpisać, bo niestety poziom obsługi podstawowych narzędzi jest niestety, na równie podstawowym poziomie), dzięki o365 mamy wspaniałe funkcje koedycji – a więc w prosty sposób cały zespół może pracować na pojedynczym źródle.
żeby odświeżyć dane w excel, znów muszę wyeksportować go do CSV. czyli:
- otworzyć arkusz
- zrobić export (kilka kliknięć, wybór formatu, nie pomylić się, bo jest kilka formatów CSV itd…)
- zamknąć.
nie lubię klikać, a więc fajnie byłoby mieć ikonkę na pulpicie, przeciągam plik XLS i voila! CSVka sobie czeka w ustalonym miejscu.
taki przydługi wstęp, ale taki dzień. jak to zrobić?
automatyczna konwersja XLSX2CSV via drag’n’drop
- trzeba sobie machnąć prosty skrypcik PS, który konwersji dokona. np taki:
convert-XLSX2CSV.ps1
param( [string]$fileName ) if(-not (test-path $fileName)) { write-host "$fileName not found. exitting" exit } write-host "converting $fileName ..." $file=get-childItem $fileName if($file.Extension -ne '.xlsx') { write-host "$fileName doen't look like excel file. exitting" exit } try{ $Excel = New-Object -ComObject Excel.Application } catch { $Error exit } $Excel.Visible = $false $Excel.DisplayAlerts = $false $wb = $Excel.Workbooks.Open($fileName) $wb.Worksheets[1].SaveAs("c:\temp\" + $File.BaseName + ".csv", 6,$null,$null,$null,$null,$null,$null,$null,'True') $Excel.Quit() write-host -ForegroundColor Green "convertion done. saved as c:\temp\$($file.BaseName).csv" write-host "press any key to finish." $HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL $HOST.UI.RawUI.Flushinputbuffer()
nic skomplikowanego. jeśli ma być auto trzeba pamiętać, że ścieżki muszą być zahardcodowane, a parametry wejścia najlepiej ograniczyć do nazwy pliq.
2. zrobić skrót na pulpicie, który przyjmie plik drag’n’drop. jeśli zrobimy skrót do ps1 – nie zadziała. skrót musi być do pliq exe. a więc proste:
- utwórz nowy skrót
- jako plik do uruchomienia:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -file C:\_scriptZ\convert-xlsx2csv.ps1
…no i w zasadzie tyle. teraz wystarczy upuścić plik Excel na skrócie i życie jest dłuższe o kilka ładnych kliqw (=
bezpośrednia edycja XLSX
a nie można by tak bezpośrednio na excelu pracować? ano możnaby. nawet na serwerze. jest taka fajna biblioteka, która pozwala zaimportować się bez instalacji samego excel. nawet kiedyś o tym pisałem. ale obsługa tego skryptem, jest mówiąc oględnie – mało przyjemna. praca na zwykłych obiektach to czysta przyjemność.
eN.
Adam
olo
nExoR