cwolan pisze:Kod: Zaznacz cały
sub ZapiszKopie dim args1(1) as new com.sun.star.beans.PropertyValue args1(0).Name = "FilterName" args1(0).Value = "Text - txt - csv (StarCalc)" args1(1).Name = "FilterOptions" args1(1).Value = "44,34,ANSI,1,,0,false,true,true" FileURL = "file:///I:/plik.csv" ThisComponent.storeToURL(FileURL,args1()) end sub
Dziękuję za powyższe informacje...Jan_J pisze:Dla porządku dołączam link do dokumentacji opcji filtra:
https://wiki.openoffice.org/wiki/Docume ... CSV_Filter
Zarejestrowałem / nagrałem makro (bo pisać nie umiem), które zapisuje dokument jako plik csv "zapisz jako" i działa ono poprawnie:
Kod: Zaznacz cały
sub ZapiszJako
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///I:/plik.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "44,34,ANSI,1,,0,false,true,true"
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
end sub
Kod: Zaznacz cały
sub ZapiszKopie
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SaveACopy", "", 0, Array())
end sub
dispatcher.executeDispatch(document, ".uno:SaveACopy", "", 0, args1())
zamiast
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
( i ostatni parametr zamieniłem z Array na args).
Makro wygląda jak poniżej i nie działa:
Kod: Zaznacz cały
sub ZapiszKopie
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///I:/plik.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "44,34,ANSI,1,,0,false,true,true"
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SaveACopy", "", 0, args1())
end sub