https://bugs.documentfoundation.org/show_bug.cgi?id=89920
Bug ID: 89920 Summary: inserting line break to cell from macro Product: LibreOffice Version: unspecified Hardware: Other OS: All Status: UNCONFIRMED Severity: normal Priority: medium Component: Calc Assignee: libreoffice-bugs@lists.freedesktop.org Reporter: tima...@gmail.com Consider the following macro: sub Main my_cell = ThisComponent.Sheets(0).getCellByPosition(0,0) my_cell.String = "aa bb" + chr(10) + "cc dd" end sub It will write to A1 cell on the first sheet: aa bb cc dd It will be saved to ODS as: <table:table-cell office:value-type="string" calcext:value-type="string"> <text:p>aa bb</text:p> <text:p>cc dd</text:p> </table:table-cell> It is good. However, let's have "aa bb cc dd" in cell A1. Now we want to replace consecutive spaces to line breaks. We cannot do this from UI, so let's use a macro. sub Main 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 args2(17) as new com.sun.star.beans.PropertyValue args2(0).Name = "SearchItem.StyleFamily" args2(0).Value = 2 args2(1).Name = "SearchItem.CellType" args2(1).Value = 0 args2(2).Name = "SearchItem.RowDirection" args2(2).Value = true args2(3).Name = "SearchItem.AllTables" args2(3).Value = false args2(4).Name = "SearchItem.Backward" args2(4).Value = false args2(5).Name = "SearchItem.Pattern" args2(5).Value = false args2(6).Name = "SearchItem.Content" args2(6).Value = false args2(7).Name = "SearchItem.AsianOptions" args2(7).Value = false args2(8).Name = "SearchItem.AlgorithmType" args2(8).Value = 1 args2(9).Name = "SearchItem.SearchFlags" args2(9).Value = 65536 args2(10).Name = "SearchItem.SearchString" args2(10).Value = " {2,}" args2(11).Name = "SearchItem.ReplaceString" args2(11).Value = chr(10) args2(12).Name = "SearchItem.Locale" args2(12).Value = 255 args2(13).Name = "SearchItem.ChangedChars" args2(13).Value = 2 args2(14).Name = "SearchItem.DeletedChars" args2(14).Value = 2 args2(15).Name = "SearchItem.InsertedChars" args2(15).Value = 2 args2(16).Name = "SearchItem.TransliterateFlags" args2(16).Value = 1280 args2(17).Name = "SearchItem.Command" args2(17).Value = 3 dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2()) end sub Please note, that the replacement text is the same chr(10) as in the first macro. But in A1 we will see: "aa bbcc dd". When we save it to ODS, we have this xml in the file: <table:table-cell office:value-type="string" calcext:value-type="string"> <text:p>aa bb <text:line-break/> cc dd</text:p> </table:table-cell> So, we don't have two <text:p> elements, but the <text:line-break/> between the two lines. Unfortunately when LibreOffice reads this back, the line break disappears forever. Interestingly saving to XLS and reload from that XLS preserves the line break. Expected behaviour: if chr(10) means line break in the cell, then it should work in case of search and replace, too. -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs