Bug 127675 - Pasting only 65536 rows / 256 columns / 255 characters per cell to Calc from Excel (missing support for BIFF12 clipboard format)
Summary: Pasting only 65536 rows / 256 columns / 255 characters per cell to Calc from ...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All Windows (All)
: medium normal
Assignee: Laurent Balland
URL:
Whiteboard: reviewed:2023 target:26.2.0 target:26...
Keywords: difficultyMedium, easyHack, skillCpp
: 87843 163759 (view as bug list)
Depends on:
Blocks: Paste-From-MSO
  Show dependency treegraph
 
Reported: 2019-09-20 16:55 UTC by Roman Kuznetsov
Modified: 2025-12-23 15:21 UTC (History)
6 users (show)

See Also:
Crash report or crash signature:


Attachments
Example XLSX with 100000 rows with data (817.30 KB, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
2019-09-20 16:56 UTC, Roman Kuznetsov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Kuznetsov 2019-09-20 16:55:36 UTC
Description:
Pasting only 65536 rows to Calc from Excel

possible a problem with selecting of right format for pasting from clipboard in LibreOffice Calc

Steps to Reproduce:
1. Open XLSX file from attach
2. Copy cell range A1:A100000
3. Try paste it into Calc => will be paste only 65536 rows instead of all 100000


Actual Results:
Pasting only 65536 rows to Calc from Excel

Expected Results:
Pasting all data from Excel to Calc


Reproducible: Always


User Profile Reset: No



Additional Info:
Version: 6.4.0.0.alpha0+ (x64)
Build ID: 06925c1230cd6269fa5189ac3f4d608c9edf68e9
CPU threads: 4; OS: Windows 10.0; UI render: GL; VCL: win; 
TinderBox: Win-x86_64@42, Branch:master, Time: 2019-09-17_00:45:28
Locale: ru-RU (ru_RU); UI-Language: en-US
Calc: threaded
Comment 1 Roman Kuznetsov 2019-09-20 16:56:36 UTC
Created attachment 154330 [details]
Example XLSX with 100000 rows with data
Comment 2 Roman Kuznetsov 2019-09-20 16:58:14 UTC
Open file from attach in Excel of course =(
Comment 3 Mike Kaganski 2019-09-20 17:12:20 UTC
Excel (tested with ver.2016) stores these formats to clipboard:

CF_TEXT
CF_BITMAP
CF_METAFILEPICT
CF_SYLK
CF_DIN
CF_UNICODETEXT
CF_ENHMETAFILE
Embed Source
Link Source
Object Descriptor
Link Source Descriptor
HTML Format
Rich Text Format
Hyperlink
Csv
Link
Biff8
Biff5
XML Spreadsheet
Biff12

The Biff8 is what is chosen by Calc when pasting (see ScViewFunc::PasteFromSystem()). It is a format that is limited to 256 columns and 65536 rows, hence it can't contain everything that Excel is capable to store to clipboard (Biff5 has the same constraints). "XML Spreadsheet" format seems to be the Excel 2003 XML format; and Biff12 is "Excel Binary Workbook" (.xlsb), which is the format supported by LibreOffice (read-only) and doesn't have the limitation of the older Biff formats.

The Biff8 clipboard format support was added in commit https://git.libreoffice.org/core/+/f5412bb121481cf1e48af4d6dc10674bec6c095c.

Adding "easyhack" keyword.
Comment 4 Mike Kaganski 2019-09-20 17:24:16 UTC
So the idea is to add the Biff12 Clipboard format support, which would take precedence over the other two Biff formats on import.
Comment 5 Hossein 2023-04-06 09:51:12 UTC
Re-evaluating the EasyHack in 2023

This issue is still relevant. I've tested this with MS Office 2019 and both LO 7.5 and the latest LO 7.6 dev master, and the problem is still there:

Version: 7.5.1.2 (X86_64) / LibreOffice Community
Build ID: fcbaee479e84c6cd81291587d2ee68cba099e129
CPU threads: 32; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: en-US (en_DE); UI: en-US
Calc: threaded

Version: 7.6.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 23bd3bd10e74b0c23c2654d02d7d830e7693adac
CPU threads: 32; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: en-US (en_DE); UI: en-US
Calc: threaded
Comment 6 Mike Kaganski 2023-05-09 10:44:34 UTC
*** Bug 87843 has been marked as a duplicate of this bug. ***
Comment 7 Matt K 2023-07-09 00:21:32 UTC Comment hidden (off-topic)
Comment 8 Mike Kaganski 2023-07-09 06:16:19 UTC Comment hidden (off-topic)
Comment 9 Matt K 2023-07-09 22:39:11 UTC Comment hidden (off-topic)
Comment 10 Mike Kaganski 2024-11-04 13:24:33 UTC Comment hidden (obsolete)
Comment 11 Mike Kaganski 2024-11-04 18:34:43 UTC
*** Bug 163759 has been marked as a duplicate of this bug. ***
Comment 12 Commit Notification 2025-11-16 15:06:23 UTC
Laurent Balland committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/ba49c9249fcfec8891ef7d53dc8c9db1715df020

tdf#127675 Treat Biff12 when pasting

It will be available in 26.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 13 devseppala 2025-12-23 10:52:38 UTC
(In reply to Commit Notification from comment #12)
> Laurent Balland committed a patch related to this issue.
> Affected users are encouraged to test the fix and report feedback.

I tested this by copying a range consisting of 120k rows, 340 columns from Excel 2013 to Calc 26.2.0.0.beta1. First row had cells with 700 charachters and other cells in columns had numbers 1,2,3,4,5...120000. Pasting took maybe 20 seconds and seems to have worked fine. 

Thank you very much for fixing this issue! I think the 256 characters per cell limit was most annoying and dangerous, because it was so difficult to detect the missing characters. With rows and colums it was easier see that not all of the rows or columns were transfered.  


Version: 26.2.0.0.beta1 (X86_64)
Build ID: 620(Build:0)
CPU threads: 16; OS: Windows 11 X86_64 (build 26200); UI render: Skia/Vulkan; VCL: win
Locale: fi-FI (fi_FI); UI: en-GB
Calc: CL threaded
Comment 14 devseppala 2025-12-23 11:33:37 UTC
(In reply to Commit Notification from comment #12)
> Laurent Balland committed a patch related to this issue.
> Affected users are encouraged to test the fix and report feedback.

In my previous comment I concluded that I managed succesfully copy/paste BIFF12 data from Excel 2013 to Calc 26.2.0.0.beta1. 

Now I find that saving the .ods document that I pasted data from Excel 2013 always crashes. Even with very small content pasted. Does this happen to anyone else?

Saving a naturally created LO calc document with 120k rows, 350rows  and some cells having 700 works. Working with this huge document does get into some performance issues, but saving it does work.
Comment 15 Buovjaga 2025-12-23 11:42:42 UTC
(In reply to devseppala from comment #14)
> In my previous comment I concluded that I managed succesfully copy/paste
> BIFF12 data from Excel 2013 to Calc 26.2.0.0.beta1. 
> 
> Now I find that saving the .ods document that I pasted data from Excel 2013
> always crashes. Even with very small content pasted. Does this happen to
> anyone else?

Please create a new report for it with a minimal sample that reproduces the issue.
Comment 16 devseppala 2025-12-23 11:59:36 UTC
(In reply to Buovjaga from comment #15)
> (In reply to devseppala from comment #14)
> Please create a new report for it with a minimal sample that reproduces the
> issue.

@Buovjaga, producing a sample document is a bit difficult as the saving process crashes and hangs, and I have to manually end the LO process. Thus there is no document to send.

I will do a new report on the subject little later.
Comment 17 Mike Kaganski 2025-12-23 12:05:54 UTC
Reproducible; no sample nor new report needed. I will fix the implementation.
Comment 18 Mike Kaganski 2025-12-23 12:17:33 UTC
https://gerrit.libreoffice.org/c/core/+/196161
Comment 19 Commit Notification 2025-12-23 14:02:24 UTC
Mike Kaganski committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/a616d6f20f95735d4db4af1c102b40c9c98c2080

tdf#127675: SfxObjectShell::DoLoad takes ownership of the passed medium

It will be available in 26.8.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 20 Commit Notification 2025-12-23 15:21:33 UTC
Mike Kaganski committed a patch related to this issue.
It has been pushed to "libreoffice-26-2":

https://git.libreoffice.org/core/commit/8a3e2956c69670929123f01c6baa0a1f92f2c2d7

tdf#127675: SfxObjectShell::DoLoad takes ownership of the passed medium

It will be available in 26.2.0.2.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.