Skip to content

Не правильно работают границы на объединенных ячейках #29

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Konctantin opened this issue Mar 27, 2019 · 0 comments

Comments

@Konctantin
Copy link

И так, если для объединенной ячейки поставить к примеру толстую рамку вокруг (без пересечения), то при считывании файла а потом его сохранения получаем такой баг.
Гриница остается слева и вверху, а низ и правая сторона остаются без границы.
image

Это все происходит из-за того, то для объединенной области всем ячейкам присваивается стиль верхней левой ячейки. Но так как у этой верхней левой ячейки стиль не содержит границ снизу и справа, получаем такой эффект.

вся проблема кроется вот в этом куске кода:

        _in_merge_not_top := false;
        k := _sheet.MergeCells.InMergeRange(j, i);
        if (k >= 0) then
          _in_merge_not_top := _sheet.MergeCells.InLeftTopCorner(j, i) < 0;

        if (_in_merge_not_top) then
        begin
          k1 := _sheet.MergeCells.Items[k].Left;
          k2 := _sheet.MergeCells.Items[k].top;
        end
        else
        begin
          k1 := j;
          k2 := i;
        end;

        if (_sheet.Cell[k1, k2].CellStyle >= -1) and (_sheet.Cell[k1, k2].CellStyle < XMLSS.Styles.Count) then
          s := IntToStr(_sheet.Cell[k1, k2].CellStyle + 1)
        else
          s := '0';
        _xml.Attributes.Add('s', s, false);

если его заменить на этот, все заработает:

        if (_sheet.Cell[j, i].CellStyle >= -1) and (_sheet.Cell[j, i].CellStyle < XMLSS.Styles.Count) then
          s := IntToStr(_sheet.Cell[j, i].CellStyle + 1)
        else
          s := '0';
        _xml.Attributes.Add('s', s, false);

Суть в том, что у ячеек должны оставаться свои же стили, ничего подменять не надо, так делает и сам офис.

@Konctantin Konctantin changed the title Не правильно работают https://github.com/Avemey/zexmlss/pullsграницы на объединенных ячейках Не правильно работают границы на объединенных ячейках Mar 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant