Python openpyxl Table Styling convert table to range - python

I generate this spreadsheet via python and pandas. After generating the .xlsx file,
i would go into Excel and format it using the table Format as table button on the main ribbon.
I decided that i didn't want to manually format the spreadsheet so I started using Openpyxl to attempt to mimic my formats.
my main hiccup is that after i use the format as table button
I would then click on Convert to Range.
The problem is, i cant seem to be able to do this using openpyx.
Does anyone know how to do this? I don't want to create my own personalized style if one already exists.
this is the code i have been using
tab = Table(displayName="Final', ref='A1:O34', tableType=None)
style = TableStyleInfo(name="TableStyleLight2", showFirstColumn=False,
showLastColumn=False, showRowStripes=True, showColumnStripes=False)
tab.tablestyleInfo = style
ws.add_table(tab)
wb.save()
Very basic and to the point, more or less copied from teh openpyxl documents.
How do i convert this table to a range of values from openpyxl
thanks
Damn Groundhog

Have you looked at xlsxwriter? It has an option to turn the autofilter on/off when creating a table.

Related

How would I change the chart reference area on an Excel spreadsheet that I extracted from a Word document using openpyxl?

I am attempting to automate a monthly report that I write at work. Every month, the report from the previous month is opened in Word and the charts are updated via embedded Excel spreadsheets with the new months information.
I have a vague understanding that this can be done with VBA and win32com but I work on a Mac so I would prefer to use python-docx and openpyxl but as I understand MS native embedded elements are not supported in docx yet. I instead opted to just unzip the docx and edit the Excel file directly.
The thing I can't figure out is how to adjust the size of the table that the chart is pulling information from. This is shown by the blue line in the picture.
Excel table
I've been reading as much of the openpyxl documentation as I can but I can't figure out how to do this.

Is there a way I can display data in Excel without saving a file first?

I'm using openpyxl to create a workbook in memory and fill it with data. Is there anyway to display that data in Excel at the end of the Python script without saving the file? It would be left up to the user to decide if they want to save the file or not. I'm guessing it's not possible but I wanted to see if I could get a more definitive answer here. Thanks!

Using Python (and DataNitro) to copy cells from a particular sheet in one Excel workbook, to a particular sheet in another Excel workbook

I do a lot of data analysis in Excel and have been exploring Python and DataNitro to streamline my workflow. I specifically am trying to copy certain cells from one sheet in one Excel workbook, and paste them into certain cells in a certain sheet in another Excel workbook.
I have been storing ("copying") using CellRange (DataNitro), but am not sure how to copy the stored contents into a particular sheet, in another Excel workbook. Any clue how I may go about this? Also, is it possible to make the range defined for a CellRange conditional on certain cell properties?
I would really appreciate any help! Thank you, all.
Here's an example of copying:
data = CellRange("A1:A10").value
active_wkbk("Book2.xlsx")
CellRange("A1:A10").value = data
You can make the range conditional using regular Python logic (if statements, etc.).

Python Excel - OpenPyxl Limitation

I recently started to automate a report at work using Python. Since my data was provided to me in the form of an excel sheet, I felt the best way to do this was to use an excel python module. My module of choice was openpyxl. It worked great, I've used it to perform calculations and organise my data ready to plot charts. Now here's the problem...
I know that you cannot update existing charts using openpyxl so that option went out the window.
What I then tried to do was link the data in my openpyxl spreadsheet to another spreadsheet containing the charts (which is then linked to my word document where the charts are to be displayed). So after doing this I ran my script and to my annoyance, the data links between my openpyxl spreadsheet and charts spreadsheet had been severed. I guess this is because openpyxl creates a new spreadsheet when you save using the save function links are severed.
My question is.. are there any ways to maintain the data links?
It is currently not possible to maintain links between files. I think it would be possible to keep them metadata but, for fairly obvious reasons, it won't necessarily be possible to validate them. This best way for this to happen would be through a pull request.
If you're on Windows you might look at using the Python for Windows stuff which will allow you to remote control the applications.

creating a table in excel using python

I am using xlwt to write to cells in excel from python. I am wondering if there is some way to select the written cells and insert a table. I have references to the cell range. Please help out.
I m not aware of xlwt. But you can try it using xlsxwriter.
https://xlsxwriter.readthedocs.org/working_with_tables.html

Categories

Resources