EVERNOTE mimo jiné zvládá klienty pro
- Web (jediné co lze pro Linux)
- Windows
- iVěci Apple
- Android
- Blackberry
- posílání poznámek z emailu
Jak do Evernote ale xakru dostat tu spoustu poznámek z Palmu?
Samozřejmě je tam lze opsat, ale pokud jich jsou desítky, či stovky (což se u letitých uživatelů Palmu dá předpokládat, neboť na svého miláčka nedopustili mnoho let a bez výměny zařízení ukládali a ukládali) je lepší to trochu zautomatizovat.
Následující postup, který jsem použil vycházel z potřeb uživatele majícího OS Windows.
Potřebujeme
- Palm Desktop sesynchronizovaný s Palmem
- Evernote nainstalovaný ve Windows
- MS Excel
- SciTe Lite Editor (http://www.scintilla.org)
- Skript ExceltoEvernote.au3 (přiložený na konci)
- Vyexportujeme Memo z Palm Desktopu do csv
- Upravíme soubor tak, aby ve výsledné xls obsahovalo sloupce rozdělené dle titulků a obsahů poznámek, popřípadě další sloupec s kategorií (kategorii jsem v uvedeném příkladu nepoužil, poznámky byly všechny v Unfiled)
- Upravíme v SciTe Lite skript tak, aby odpovídal našemu xls a aby nevyhazoval chyby při kompilaci a buildu (viz Tools)
- Spustíme skript Tools - Go
- Pokud jsme připravili skript i xls dobře, v Evernote by měly být naše poznámky (na konci skriptu je MessageBox s informací o počtu importovaných poznámek
Základním problémem bylo upravit vstupní soubor tak, aby ho Excel dobře otevřel (však všichni víme, že oproti Calcu z OpenOffice je při otevírání csv poněkud hloupý, či nešikovný). Zvláště protože poznámky z Palmu byly víceřádkové byllo nutné upravit je tak, aby byly texty v jedné buňce Excelu. Snaha nahradit konce odstavců čímkoliv jiným narážela ve Wordu 2010 na to, že funkce hledat po vložení Znak odstavce tento znak nenajde a poté kdy jsem Wordem vloženou značku opravil ručně na starou ^p tyto znaky sice uměl najít ale nenahradil je. nakonec pomohl jeden ze dvou nejlepších editorů, které Microsoft udělal a sice WordPad (tím druhým je Notepad), který csv otevřel hloupěji, zcukl texty do jednoho řádku, což jsem ale potřeboval.
V csv jsem jednotlivé poznámky nechal oddělené enterem, titulek od textu oddělený středníkem, text v uvozovkách.
Co jsem ve skriptu upravoval / nastavoval
Původní skript byl či je ke stažení na http://markstout.blogspot.com, popis možností příkazové řádky Evernote je na http://dev.evernote.com/documentation/local/chapters/Windows.php
Poznámk: Šlo mi o co nejrychlejší úpravu a ne o optimalizaci původního skriptu.
Upravené a přidané řádky
27 - cesta k importovanému souboru
29 - buňka excelu obsahující text poznámky
30 - přidané - buňka excelu obsahující titulek poznámky
32, 33 - rozsah zpracovávaného souboru excelu
36 - cesta k nainstalované aplikaci Evernote
42 - zakomentoval jsem název / titulek poznámky
45 - jak se má jmenovat notebook v Evernote
48 - tagy přidané k poznámkám
Do skriptu jsem přidal vložení titulku podle excel souboru
56,66 - proměnná $tit (veselejší by bylo množné číslo)
82,86 - zpracování obsahu buňky pro titulek
116 - naplnění titulku
126 - upravený příkaz s vloženým titulkem
Použitý skript (pozor na zalomené řádky)
#comments-start
File: Excel_to_Evernote.au3
An Autoit3 script
Purpose: Convert data in Excel Spreadsheets to Evernote notes - One line of data becomes one note
Created : July 31, 2009
Updated : July 31. 2009
First published at : http://markstout.blogspot.com
Provided AS-IS - no warranties. Use only on backed up data. Use at your own risk.
#comments-end
; includes
#include
#include
#include
; Information about your spreadsheet
; your speadsheet file with path
$sFilePath = "C:\users\Michal\Dokumenty\export_memo.xls"
$columns = "B" ; list of columns to put into note. This is a comma separated list
$titles = "A" ; list of columns to put into note. This is a comma separated list
$row_start = 1 ; first row to move to a note
$row_end = 155 ; last row to move to a note (will also stop on first blank record
; where is your Windows Evernote executable located? The one below is the default installation location.
$pathToENScript = "c:\users\michal\appdata\local\apps\evernote\evernote\"
; Information for the new notes created
; Specify the Title prefix. The title of each note will be the prefix and then the value of the cell in the first column
; $ENTitle = "PalmMemo:" ; appends contents of column colName to this and makes title of note
; The notebook to put the new notes in
$ENNotebook = "Palm" ; notebook where note is placed
; the tags to add to each new note. This is a comma separated list
$ENTags = "palm,memo" ; tag(s) for note
; program execution starts here - there are no user setting to change below this
; initialize variables
Dim $cols,$tags,$tit,$tcol_value[4],$col_value[4]
$temp_file = _TempFile("","",".txt") ; name of temp file
$q = chr(34)
$done = 0
$exit = 0
; Convert comma separated lists to arrays
$cols = StringSplit($columns,",")
$tags = StringSplit($ENTags,",")
$tit = StringSplit($titles,",")
; Open Excel file
Local $oExcel = _ExcelBookOpen($sFilePath)
; loop through the rows
for $i = $row_start to $row_end
; loop through the columns to copy to notes
for $j = 0 to $cols[0]
; get Cell coordinates (example C5)
$row_col = $cols[$j] & $i
$trow_col = $tit[$j] & $i
; get value of that cell
$col_value[$j] = _ExcelReadCell($oExcel, $row_col)
$tcol_value[$j] = _ExcelReadCell($oExcel, $trow_col)
; if cell is blank, exit loop - Part 1
if $j=1 and $col_value[$j] = "" then
$exit = 1
exitloop
endif
next
; if cell is blank, exit loop - Part 2
if $exit=1 then
$exit=0
exitloop
endif
; open temp file
$fh = FileOpen($temp_file,2)
; write to temp file
for $j = 1 to $cols[0]
FileWriteLine($fh,$col_value[$j] )
next
;close temp file
FileClose($fh)
$ENTitle = $tcol_value[1]
;msgbox(0,"TEST",$ENTitle)
; convert array of tags to a string used in ENSCRIPT.exe command line
$y = ""
for $j = 1 to $tags[0]
$y = $y & " /t " & $q & $tags[$j] & $q
next
; assemble evernote command line
$cmdLinex = " createNote /s " & $q & $temp_File & $q & " /n " & $q & $ENNotebook & $q & $y & " /i " & $q & $ENTitle & $q
; $cl = $q & $pathToENScript & "ENScript.exe" & $q & $cmdLinex
; ClipPut($cl)
; invoke ENSCRIPT.EXE
$res = ShellExecuteWait ( $q & $pathToENScript & "ENScript.exe" & $q, $cmdLinex,"","open",@SW_HIDE)
; count number of times it is invoked
$done = $done + 1
Next
; Close Excel Book
_ExcelBookClose($oExcel)
; concluding Message
$res_str = $done & " imports completed."
msgbox(0,"Done",$res_str)
File: Excel_to_Evernote.au3
An Autoit3 script
Purpose: Convert data in Excel Spreadsheets to Evernote notes - One line of data becomes one note
Created : July 31, 2009
Updated : July 31. 2009
First published at : http://markstout.blogspot.com
Provided AS-IS - no warranties. Use only on backed up data. Use at your own risk.
#comments-end
; includes
#include
#include
#include
; Information about your spreadsheet
; your speadsheet file with path
$sFilePath = "C:\users\Michal\Dokumenty\export_memo.xls"
$columns = "B" ; list of columns to put into note. This is a comma separated list
$titles = "A" ; list of columns to put into note. This is a comma separated list
$row_start = 1 ; first row to move to a note
$row_end = 155 ; last row to move to a note (will also stop on first blank record
; where is your Windows Evernote executable located? The one below is the default installation location.
$pathToENScript = "c:\users\michal\appdata\local\apps\evernote\evernote\"
; Information for the new notes created
; Specify the Title prefix. The title of each note will be the prefix and then the value of the cell in the first column
; $ENTitle = "PalmMemo:" ; appends contents of column colName to this and makes title of note
; The notebook to put the new notes in
$ENNotebook = "Palm" ; notebook where note is placed
; the tags to add to each new note. This is a comma separated list
$ENTags = "palm,memo" ; tag(s) for note
; program execution starts here - there are no user setting to change below this
; initialize variables
Dim $cols,$tags,$tit,$tcol_value[4],$col_value[4]
$temp_file = _TempFile("","",".txt") ; name of temp file
$q = chr(34)
$done = 0
$exit = 0
; Convert comma separated lists to arrays
$cols = StringSplit($columns,",")
$tags = StringSplit($ENTags,",")
$tit = StringSplit($titles,",")
; Open Excel file
Local $oExcel = _ExcelBookOpen($sFilePath)
; loop through the rows
for $i = $row_start to $row_end
; loop through the columns to copy to notes
for $j = 0 to $cols[0]
; get Cell coordinates (example C5)
$row_col = $cols[$j] & $i
$trow_col = $tit[$j] & $i
; get value of that cell
$col_value[$j] = _ExcelReadCell($oExcel, $row_col)
$tcol_value[$j] = _ExcelReadCell($oExcel, $trow_col)
; if cell is blank, exit loop - Part 1
if $j=1 and $col_value[$j] = "" then
$exit = 1
exitloop
endif
next
; if cell is blank, exit loop - Part 2
if $exit=1 then
$exit=0
exitloop
endif
; open temp file
$fh = FileOpen($temp_file,2)
; write to temp file
for $j = 1 to $cols[0]
FileWriteLine($fh,$col_value[$j] )
next
;close temp file
FileClose($fh)
$ENTitle = $tcol_value[1]
;msgbox(0,"TEST",$ENTitle)
; convert array of tags to a string used in ENSCRIPT.exe command line
$y = ""
for $j = 1 to $tags[0]
$y = $y & " /t " & $q & $tags[$j] & $q
next
; assemble evernote command line
$cmdLinex = " createNote /s " & $q & $temp_File & $q & " /n " & $q & $ENNotebook & $q & $y & " /i " & $q & $ENTitle & $q
; $cl = $q & $pathToENScript & "ENScript.exe" & $q & $cmdLinex
; ClipPut($cl)
; invoke ENSCRIPT.EXE
$res = ShellExecuteWait ( $q & $pathToENScript & "ENScript.exe" & $q, $cmdLinex,"","open",@SW_HIDE)
; count number of times it is invoked
$done = $done + 1
Next
; Close Excel Book
_ExcelBookClose($oExcel)
; concluding Message
$res_str = $done & " imports completed."
msgbox(0,"Done",$res_str)
Žádné komentáře:
Okomentovat