Comments (2)
any update?
from libxlsxwriter.
I don't plan to implement this feature. Constant memory mode writes data row by row for efficiency and merge_range()
needs to write data on (usually) several rows so they aren't compatible.
I'll explain why in case anyone want to try fix it in their own version but I won't upstream it.
Consider a simple worksheet with a merged area like this:
This is stored in an Excel xlsx file with the following xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet
xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
<dimension ref="B2:D4"/>
<sheetViews>
<sheetView tabSelected="1" workbookViewId="0"/>
</sheetViews>
<sheetFormatPr defaultRowHeight="15"/>
<sheetData>
<row r="2" spans="2:4">
<c r="B2" s="1">
<v>123456</v>
</c>
<c r="C2" s="1"/>
<c r="D2" s="1"/>
</row>
<row r="3" spans="2:4">
<c r="B3" s="1"/>
<c r="C3" s="1"/>
<c r="D3" s="1"/>
</row>
<row r="4" spans="2:4">
<c r="B4" s="1"/>
<c r="C4" s="1"/>
<c r="D4" s="1"/>
</row>
</sheetData>
<mergeCells count="1">
<mergeCell ref="B2:D4"/>
</mergeCells>
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
</worksheet>
The main thing to understand from this is that the merged range is stored in 2 places/ways:
- In the
<mergeCells>
element. - As a collection of cell
<c>
elements which are mainly blank and which have the same cell style propertys="1"
as the first cell in the merged range which contains the string/number for the merged cells.
When writing a file in constant_memory
mode it is possible to write the elements in the first but the elements in the second require the row number/cursor to advance which means that data cannot be written in the previous rows.
So that breaks merged ranges or else breaks writing any other data in a section of the worksheet with a merged range.
It would be possible to workaround this by tracking the merged ranges and then as the row/cursor advances to write out the formatted cells. However, I don't intend to add this to the library since it is reasonable amount of work to implement in a non error prone way. Also, and this is as important as the technical/effort reason, the constant memory mode is mainly intended for cases where the user wants to dump a large amount of data in a memory efficient way and in that mode they need to compromise on features such as merged ranges and tables.
So I am going to close this as won't fix.
from libxlsxwriter.
Related Issues (20)
- Linux(CentOS6) Build Error.
- LXW_ERROR_CREATING_XLSX_FILE: error creating output xlsx file. Usually a permissions error. HOT 1
- cannot run on x64 Release in Visual Studio 2022 HOT 5
- Issue: Corrupt file compiled using VS2008 on Windows HOT 9
- password HOT 1
- Still Tagging Releases? HOT 2
- 1.1.6 release did not get marked as latest release HOT 4
- How to insert image data of type CV:: Mat HOT 2
- test/functional/test_image.py::TestCompareXLSXFiles::test_image58 failure on 32bit architectures HOT 10
- Bug: workbook_validate_sheet_name buffer-overflow HOT 4
- Bug: workbook_add_worksheet does not return a reasonable worksheet HOT 1
- workbook_define_name stack-buffer-underflow HOT 2
- workbook_close stack-buffer-overflow HOT 4
- _store_array_formula heap-buffer-overflow HOT 5
- worksheet_set_selection stack-buffer-overflow HOT 1
- Question: Are people still using the libxlsxwriter cocoapod?
- Chinese in workbook_add_worksheet cause crash
- add support for xlsb HOT 1
- It seems there is a memory leak in constant memory enabled when trying to insert date HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libxlsxwriter.