reports: BaseODS puts each line of strings in a P tag.
This seems to be the most straightforward way to get Calc to automatically determine a nice row height for multi-line string cells. This has become a lot more noticeable now that query-report supports putting postal addresses in cells.
This commit is contained in:
parent
fff211386f
commit
6703d1af87
2 changed files with 13 additions and 4 deletions
|
@ -1436,9 +1436,15 @@ class BaseODS(BaseSpreadsheet[RT, ST], metaclass=abc.ABCMeta):
|
|||
return self.multilink_cell(self._meta_link_pairs(links), **attrs)
|
||||
|
||||
def multiline_cell(self, lines: Iterable[Any], **attrs: Any) -> odf.table.TableCell:
|
||||
item_lines = [str(item).splitlines() for item in lines if item is not None]
|
||||
if any(len(seq) > 1 for seq in item_lines):
|
||||
for seq in item_lines:
|
||||
seq.append('')
|
||||
seq.pop()
|
||||
cell = odf.table.TableCell(valuetype='string', **attrs)
|
||||
for line in lines:
|
||||
cell.addElement(odf.text.P(text=str(line)))
|
||||
for seq in item_lines:
|
||||
for line in seq:
|
||||
cell.addElement(odf.text.P(text=line))
|
||||
return cell
|
||||
|
||||
def multilink_cell(self, links: Iterable[LinkType], **attrs: Any) -> odf.table.TableCell:
|
||||
|
@ -1457,7 +1463,8 @@ class BaseODS(BaseSpreadsheet[RT, ST], metaclass=abc.ABCMeta):
|
|||
|
||||
def string_cell(self, text: str, **attrs: Any) -> odf.table.TableCell:
|
||||
cell = odf.table.TableCell(valuetype='string', **attrs)
|
||||
cell.addElement(odf.text.P(text=text))
|
||||
for line in text.splitlines():
|
||||
cell.addElement(odf.text.P(text=line))
|
||||
return cell
|
||||
|
||||
def write_row(self, row: RT) -> None:
|
||||
|
|
|
@ -193,7 +193,9 @@ def check_ods_sheet(sheet, account_balances, *, full):
|
|||
cells = iter(testutil.ODSCell.from_row(row))
|
||||
try:
|
||||
fund = next(cells).firstChild.text
|
||||
except (AttributeError, StopIteration):
|
||||
except AttributeError:
|
||||
fund = ''
|
||||
except StopIteration:
|
||||
continue
|
||||
try:
|
||||
balances = account_bals.pop(fund)
|
||||
|
|
Loading…
Reference in a new issue