combine multiple xlsx files which include dropdown columns in them.

51 views
Skip to first unread message

Hongyi Zhao

unread,
Sep 7, 2021, 11:31:54 PM9/7/21
to openpyxl-users

I've some xlsx files which include dropdown columns in them. I want to know whether I can combine all the lines into one xlsx file. Any hints will be highly appreciated.

Regards,
HY

Charlie Clark

unread,
Sep 8, 2021, 4:00:33 AM9/8/21
to openpyxl-users
The question is too general to be answered easily: yes, you should be able to combine files together and, depending on what you mean by dropdown columns, most features should be preserved. But without any files, code, error messages, etc. we won't be able to offer much help.

Charlie

--
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Waldlehne 23
Düsseldorf
D- 40489
Tel: +49-203-3925-0390
Mobile: +49-178-782-6226

Hongyi Zhao

unread,
Sep 8, 2021, 10:28:47 PM9/8/21
to openpyxl-users
On Wednesday, September 8, 2021 at 4:00:33 PM UTC+8 charli...@clark-consulting.eu wrote:
On 8 Sep 2021, at 5:31, Hongyi Zhao wrote:

> I've some xlsx files which include dropdown columns in them. I want to know
> whether I can combine all the lines into one xlsx file. Any hints will be
> highly appreciated.

The question is too general to be answered easily: yes, you should be able to combine files together and, depending on what you mean by dropdown columns, most features should be preserved. But without any files, code, error messages, etc. we won't be able to offer much help.

The contents of all files are similar to the following:

$ ptpython
>>> import openpyxl
>>> wb=openpyxl.open('33.xlsx')
>>> list(wb)
[<Worksheet "Sheet1">, <Worksheet "Sheet2">, <Worksheet "Sheet3">, <Worksheet "Sheet4">]

>>> type(wb)
<class 'openpyxl.workbook.workbook.Workbook'>

>>> wb['Sheet1']
<Worksheet "Sheet1">

>>> wb['Sheet1'].data_validations
<openpyxl.worksheet.datavalidation.DataValidationList object>
Parameters:
disablePrompts=None, xWindow=None, yWindow=None, count=9, dataValidation=[<openpyxl.worksheet.datavalidation.DataValidation object>
Parameters:
sqref=<MultiCellRange [E4:E10275]>, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None, imeMode=None, operator=None, formula1='=INDIRECT($D4)', formula2=None, <openpyxl.worksheet.datavalidation.DataValidation object>
Parameters:
sqref=<MultiCellRange [K4:K1048576]>, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None, imeMode=None, operator=None, formula1='"是,否"', formula2=None, <openpyxl.worksheet.datavalidation.DataValidation object>
Parameters:
sqref=<MultiCellRange [M4:M1048576]>, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None, imeMode=None, operator=None, formula1='=INDIRECT($L4:$L100001)', formula2=None, <openpyxl.worksheet.datavalidation.DataValidation object>
Parameters:
sqref=<MultiCellRange [L4:L1048576]>, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None, imeMode=None, operator=None, formula1="='Sheet2'!$Q$3:$Q$16", formula2=None, <openpyxl.worksheet.datavalidation.DataValidation object>
Parameters:
sqref=<MultiCellRange [D4:D1048576]>, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None, imeMode=None, operator=None, formula1="='Sheet2'!$Q$3:$Q$16", formula2=None, <openpyxl.worksheet.datavalidation.DataValidation object>
Parameters:
sqref=<MultiCellRange [E10276:E1048576]>, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None, imeMode=None, operator=None, formula1="='Sheet2'!$B$3:$O$3", formula2=None, <openpyxl.worksheet.datavalidation.DataValidation object>
Parameters:
sqref=<MultiCellRange [H4:H1048576]>, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None, imeMode=None, operator=None, formula1="='Sheet4'!$B$1:$B$42", formula2=None, <openpyxl.worksheet.datavalidation.DataValidation object>
Parameters:
sqref=<MultiCellRange [I4:I1048576]>, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None, imeMode=None, operator=None, formula1="='Sheet4'!$B$1:$B$42", formula2=None, <openpyxl.worksheet.datavalidation.DataValidation object>
Parameters:
sqref=<MultiCellRange [J4:J1048576]>, showErrorMessage=True, showDropDown=None, showInputMessage=True, allowBlank=False, errorTitle=None, error=None, promptTitle=None, prompt=None, type='list', errorStyle=None, imeMode=None, operator=None, formula1="='Sheet4'!$B$1:$B$42", formula2=None]

Regards,
HY
Reply all
Reply to author
Forward
0 new messages