OpenPyXL: Is it possible to create a dropdown menu in an excel sheet?
up vote
1
down vote
favorite
I'm attempting to store a list of valid ip addresses in a cell using openpyxl. At the moment the data is simply placed into a cell, and usually overflows into other cells. Using the code below:
# Regex to return a tidy list of ip addresses in that block
"""
r = row to be checked
s = source or destination columns
iptc = ips to check
"""
def regex_ips(r, s):
iptc = ['165.11.14.20', '166.22.24.0/24', '174.68.19.11', '165.211.20.0/23']
if r is not None:
if s is not None:
iptc = str(sheet.cell(r, s).value)
san = re.sub('n', ', ', iptc)
sheet_report.cell(r, 8).value = san
However, I would prefer if i could place these ip addresses into a dropdown list since that would be far easier to read - so my question is twofold, first, can this be done? because I couldn't find any info about it, And secondly, is there possibly a better way to display the data without it overflowing?
Thanks for reading over this
EDIT: added some example addresses and subnets to reflect what may be in a list.
python openpyxl
add a comment |
up vote
1
down vote
favorite
I'm attempting to store a list of valid ip addresses in a cell using openpyxl. At the moment the data is simply placed into a cell, and usually overflows into other cells. Using the code below:
# Regex to return a tidy list of ip addresses in that block
"""
r = row to be checked
s = source or destination columns
iptc = ips to check
"""
def regex_ips(r, s):
iptc = ['165.11.14.20', '166.22.24.0/24', '174.68.19.11', '165.211.20.0/23']
if r is not None:
if s is not None:
iptc = str(sheet.cell(r, s).value)
san = re.sub('n', ', ', iptc)
sheet_report.cell(r, 8).value = san
However, I would prefer if i could place these ip addresses into a dropdown list since that would be far easier to read - so my question is twofold, first, can this be done? because I couldn't find any info about it, And secondly, is there possibly a better way to display the data without it overflowing?
Thanks for reading over this
EDIT: added some example addresses and subnets to reflect what may be in a list.
python openpyxl
"Drop Down" lists can be done fairly easy with openpyxl, so called "data validation" in Excel, can you provide the contents ofiptc
,or a list of some examples ips, or how are they store.
– HaR
Jul 24 at 13:56
Also how many ip address do you have in the list?
– HaR
Jul 24 at 14:04
The list can vary in size, usually no more than maybe 40 addresses total, and they are being stored in a list - ill update the example to reflect this with some pseudo examples
– Connor J
Jul 24 at 14:23
Also you have to store your ip addresses into separate strings like this :iptc = ["165.11.14.20", "166.22.24.0/24", "174.68.19.11", "165.211.20.0/23"]
– HaR
Jul 24 at 14:56
@HaR Thanks for pointing that out - just updated the example to reflect that
– Connor J
Jul 25 at 9:06
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I'm attempting to store a list of valid ip addresses in a cell using openpyxl. At the moment the data is simply placed into a cell, and usually overflows into other cells. Using the code below:
# Regex to return a tidy list of ip addresses in that block
"""
r = row to be checked
s = source or destination columns
iptc = ips to check
"""
def regex_ips(r, s):
iptc = ['165.11.14.20', '166.22.24.0/24', '174.68.19.11', '165.211.20.0/23']
if r is not None:
if s is not None:
iptc = str(sheet.cell(r, s).value)
san = re.sub('n', ', ', iptc)
sheet_report.cell(r, 8).value = san
However, I would prefer if i could place these ip addresses into a dropdown list since that would be far easier to read - so my question is twofold, first, can this be done? because I couldn't find any info about it, And secondly, is there possibly a better way to display the data without it overflowing?
Thanks for reading over this
EDIT: added some example addresses and subnets to reflect what may be in a list.
python openpyxl
I'm attempting to store a list of valid ip addresses in a cell using openpyxl. At the moment the data is simply placed into a cell, and usually overflows into other cells. Using the code below:
# Regex to return a tidy list of ip addresses in that block
"""
r = row to be checked
s = source or destination columns
iptc = ips to check
"""
def regex_ips(r, s):
iptc = ['165.11.14.20', '166.22.24.0/24', '174.68.19.11', '165.211.20.0/23']
if r is not None:
if s is not None:
iptc = str(sheet.cell(r, s).value)
san = re.sub('n', ', ', iptc)
sheet_report.cell(r, 8).value = san
However, I would prefer if i could place these ip addresses into a dropdown list since that would be far easier to read - so my question is twofold, first, can this be done? because I couldn't find any info about it, And secondly, is there possibly a better way to display the data without it overflowing?
Thanks for reading over this
EDIT: added some example addresses and subnets to reflect what may be in a list.
python openpyxl
python openpyxl
edited Jul 25 at 9:06
asked Jul 24 at 11:43
Connor J
29711
29711
"Drop Down" lists can be done fairly easy with openpyxl, so called "data validation" in Excel, can you provide the contents ofiptc
,or a list of some examples ips, or how are they store.
– HaR
Jul 24 at 13:56
Also how many ip address do you have in the list?
– HaR
Jul 24 at 14:04
The list can vary in size, usually no more than maybe 40 addresses total, and they are being stored in a list - ill update the example to reflect this with some pseudo examples
– Connor J
Jul 24 at 14:23
Also you have to store your ip addresses into separate strings like this :iptc = ["165.11.14.20", "166.22.24.0/24", "174.68.19.11", "165.211.20.0/23"]
– HaR
Jul 24 at 14:56
@HaR Thanks for pointing that out - just updated the example to reflect that
– Connor J
Jul 25 at 9:06
add a comment |
"Drop Down" lists can be done fairly easy with openpyxl, so called "data validation" in Excel, can you provide the contents ofiptc
,or a list of some examples ips, or how are they store.
– HaR
Jul 24 at 13:56
Also how many ip address do you have in the list?
– HaR
Jul 24 at 14:04
The list can vary in size, usually no more than maybe 40 addresses total, and they are being stored in a list - ill update the example to reflect this with some pseudo examples
– Connor J
Jul 24 at 14:23
Also you have to store your ip addresses into separate strings like this :iptc = ["165.11.14.20", "166.22.24.0/24", "174.68.19.11", "165.211.20.0/23"]
– HaR
Jul 24 at 14:56
@HaR Thanks for pointing that out - just updated the example to reflect that
– Connor J
Jul 25 at 9:06
"Drop Down" lists can be done fairly easy with openpyxl, so called "data validation" in Excel, can you provide the contents of
iptc
,or a list of some examples ips, or how are they store.– HaR
Jul 24 at 13:56
"Drop Down" lists can be done fairly easy with openpyxl, so called "data validation" in Excel, can you provide the contents of
iptc
,or a list of some examples ips, or how are they store.– HaR
Jul 24 at 13:56
Also how many ip address do you have in the list?
– HaR
Jul 24 at 14:04
Also how many ip address do you have in the list?
– HaR
Jul 24 at 14:04
The list can vary in size, usually no more than maybe 40 addresses total, and they are being stored in a list - ill update the example to reflect this with some pseudo examples
– Connor J
Jul 24 at 14:23
The list can vary in size, usually no more than maybe 40 addresses total, and they are being stored in a list - ill update the example to reflect this with some pseudo examples
– Connor J
Jul 24 at 14:23
Also you have to store your ip addresses into separate strings like this :
iptc = ["165.11.14.20", "166.22.24.0/24", "174.68.19.11", "165.211.20.0/23"]
– HaR
Jul 24 at 14:56
Also you have to store your ip addresses into separate strings like this :
iptc = ["165.11.14.20", "166.22.24.0/24", "174.68.19.11", "165.211.20.0/23"]
– HaR
Jul 24 at 14:56
@HaR Thanks for pointing that out - just updated the example to reflect that
– Connor J
Jul 25 at 9:06
@HaR Thanks for pointing that out - just updated the example to reflect that
– Connor J
Jul 25 at 9:06
add a comment |
2 Answers
2
active
oldest
votes
up vote
4
down vote
accepted
If you have a larger number of ips (10+), it's better suited to first store them into a column somewhere in the excel and then use their range as the data validation "Source" aka formula1.
from openpyxl.worksheet.datavalidation import DataValidation
wb = Workbook()
ws = wb.create_sheet('New Sheet')
for number in range(1,100): #Generates 99 "ip" address in the Column A;
ws['A{}'.format(number)].value= "192.168.1.{}".format(number)
data_val = DataValidation(type="list",formula1='=$A:$A') #You can change =$A:$A with a smaller range like =A1:A9
ws.add_data_validation(data_val)
data_val.add(ws["B1"]) #If you go to the cell B1 you will find a drop down list with all the values from the column A
wb.save('Test.xlsx')
More info here: https://openpyxl.readthedocs.io/en/2.5/validation.html
add a comment |
up vote
2
down vote
First you must understand some Excel capabilities. There is one called data validation, which can restrict data input, usually with a drop menu. It can restrict data using a list of values, a range of cells, numeric values, etc.
After you understand data validation, look in library documentation how to use this Excel capability.
1
Thanks, ill have a read up on those links this afternoon
– Connor J
Jul 24 at 14:23
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
4
down vote
accepted
If you have a larger number of ips (10+), it's better suited to first store them into a column somewhere in the excel and then use their range as the data validation "Source" aka formula1.
from openpyxl.worksheet.datavalidation import DataValidation
wb = Workbook()
ws = wb.create_sheet('New Sheet')
for number in range(1,100): #Generates 99 "ip" address in the Column A;
ws['A{}'.format(number)].value= "192.168.1.{}".format(number)
data_val = DataValidation(type="list",formula1='=$A:$A') #You can change =$A:$A with a smaller range like =A1:A9
ws.add_data_validation(data_val)
data_val.add(ws["B1"]) #If you go to the cell B1 you will find a drop down list with all the values from the column A
wb.save('Test.xlsx')
More info here: https://openpyxl.readthedocs.io/en/2.5/validation.html
add a comment |
up vote
4
down vote
accepted
If you have a larger number of ips (10+), it's better suited to first store them into a column somewhere in the excel and then use their range as the data validation "Source" aka formula1.
from openpyxl.worksheet.datavalidation import DataValidation
wb = Workbook()
ws = wb.create_sheet('New Sheet')
for number in range(1,100): #Generates 99 "ip" address in the Column A;
ws['A{}'.format(number)].value= "192.168.1.{}".format(number)
data_val = DataValidation(type="list",formula1='=$A:$A') #You can change =$A:$A with a smaller range like =A1:A9
ws.add_data_validation(data_val)
data_val.add(ws["B1"]) #If you go to the cell B1 you will find a drop down list with all the values from the column A
wb.save('Test.xlsx')
More info here: https://openpyxl.readthedocs.io/en/2.5/validation.html
add a comment |
up vote
4
down vote
accepted
up vote
4
down vote
accepted
If you have a larger number of ips (10+), it's better suited to first store them into a column somewhere in the excel and then use their range as the data validation "Source" aka formula1.
from openpyxl.worksheet.datavalidation import DataValidation
wb = Workbook()
ws = wb.create_sheet('New Sheet')
for number in range(1,100): #Generates 99 "ip" address in the Column A;
ws['A{}'.format(number)].value= "192.168.1.{}".format(number)
data_val = DataValidation(type="list",formula1='=$A:$A') #You can change =$A:$A with a smaller range like =A1:A9
ws.add_data_validation(data_val)
data_val.add(ws["B1"]) #If you go to the cell B1 you will find a drop down list with all the values from the column A
wb.save('Test.xlsx')
More info here: https://openpyxl.readthedocs.io/en/2.5/validation.html
If you have a larger number of ips (10+), it's better suited to first store them into a column somewhere in the excel and then use their range as the data validation "Source" aka formula1.
from openpyxl.worksheet.datavalidation import DataValidation
wb = Workbook()
ws = wb.create_sheet('New Sheet')
for number in range(1,100): #Generates 99 "ip" address in the Column A;
ws['A{}'.format(number)].value= "192.168.1.{}".format(number)
data_val = DataValidation(type="list",formula1='=$A:$A') #You can change =$A:$A with a smaller range like =A1:A9
ws.add_data_validation(data_val)
data_val.add(ws["B1"]) #If you go to the cell B1 you will find a drop down list with all the values from the column A
wb.save('Test.xlsx')
More info here: https://openpyxl.readthedocs.io/en/2.5/validation.html
edited Jul 24 at 14:48
answered Jul 24 at 14:40
HaR
365111
365111
add a comment |
add a comment |
up vote
2
down vote
First you must understand some Excel capabilities. There is one called data validation, which can restrict data input, usually with a drop menu. It can restrict data using a list of values, a range of cells, numeric values, etc.
After you understand data validation, look in library documentation how to use this Excel capability.
1
Thanks, ill have a read up on those links this afternoon
– Connor J
Jul 24 at 14:23
add a comment |
up vote
2
down vote
First you must understand some Excel capabilities. There is one called data validation, which can restrict data input, usually with a drop menu. It can restrict data using a list of values, a range of cells, numeric values, etc.
After you understand data validation, look in library documentation how to use this Excel capability.
1
Thanks, ill have a read up on those links this afternoon
– Connor J
Jul 24 at 14:23
add a comment |
up vote
2
down vote
up vote
2
down vote
First you must understand some Excel capabilities. There is one called data validation, which can restrict data input, usually with a drop menu. It can restrict data using a list of values, a range of cells, numeric values, etc.
After you understand data validation, look in library documentation how to use this Excel capability.
First you must understand some Excel capabilities. There is one called data validation, which can restrict data input, usually with a drop menu. It can restrict data using a list of values, a range of cells, numeric values, etc.
After you understand data validation, look in library documentation how to use this Excel capability.
answered Jul 24 at 12:00
PedroMVM
277129
277129
1
Thanks, ill have a read up on those links this afternoon
– Connor J
Jul 24 at 14:23
add a comment |
1
Thanks, ill have a read up on those links this afternoon
– Connor J
Jul 24 at 14:23
1
1
Thanks, ill have a read up on those links this afternoon
– Connor J
Jul 24 at 14:23
Thanks, ill have a read up on those links this afternoon
– Connor J
Jul 24 at 14:23
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f51497731%2fopenpyxl-is-it-possible-to-create-a-dropdown-menu-in-an-excel-sheet%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
"Drop Down" lists can be done fairly easy with openpyxl, so called "data validation" in Excel, can you provide the contents of
iptc
,or a list of some examples ips, or how are they store.– HaR
Jul 24 at 13:56
Also how many ip address do you have in the list?
– HaR
Jul 24 at 14:04
The list can vary in size, usually no more than maybe 40 addresses total, and they are being stored in a list - ill update the example to reflect this with some pseudo examples
– Connor J
Jul 24 at 14:23
Also you have to store your ip addresses into separate strings like this :
iptc = ["165.11.14.20", "166.22.24.0/24", "174.68.19.11", "165.211.20.0/23"]
– HaR
Jul 24 at 14:56
@HaR Thanks for pointing that out - just updated the example to reflect that
– Connor J
Jul 25 at 9:06