I have a following excel 2007 template (.xlsx):
I have set up an SSIS process to copy that template and populate the first two columns with data as the file will be printed and then signed by order recipients. Everything is going well except for one thing - after the process populates the template with data, the cells don't retain their size - making signature cells too small.
Any ideas on how to force excel to keep the cell heights ?
One idea would be to create a macro that runs when the workbook is opened and it sets the row height using the Range.RowHeight property, here:
https://msdn.microsoft.com/en-us/library/office/ff193926.aspx
If anyone ever has a similar issue, I managed to find a workaround. Instead of using SSIS I'm using SSRS where I keep the cell height by adding an "invisible (white text on white background) column at the end. I set up an SSRS subscription to automatically export the data and send as an Excel.
Related
I am using OpenXML to create reports, I am filling data in existing excel template file.
In excel template 'Wrap text' for all cells is set to true. When my report is complete I open excel file.
In opened file cells are not sized correctly with text wrapping (text wrapping is not applied). Also I observed on machine with office 2007 it works cell are wrapped but on office 2013 cell are not correctly wrapped. If I just double click on any cell then entire row is correctly updated.
Can someone please help me in this, is any property \tag I can set in openXML so that on document open cells are correctly shown.
Previously we were using OLE office interface there it works always so expectation is it should work with openXML too.
Thanks,
Dhanaj
I have a Excel file (.xlsm type) contains lot of Charts. After switch to Excel 2016, certain charts not showing Label correctly (axis-x).
Eg. It suppose showing WK10'17, WK11'17, WK12'17,...
but it showing 1,2,3,4,....
1) I tried to reselect the data, then the label showing correctly, but after save and reopen, it become 1,2,3,4.... again
2) also tried delete the existing chart, and create a new one in Excel 2010 & 2016, problem not solve.
3) Axis Type have been set as Text
Is this a bug in Excel 2016 ? Did anyone have a solution for this ?
Below Chart showing 1,2,3,4,..., which is wrong.
Below chart is showing correctly.
Below are my table look like
1st Experiment:
Firstly, I create a whole new file in Excel 2016. Then do below step:
- Create 4 Indicators for performance review, with dummy data
- Create new chart and format it
- Create simple VBA code to hide everything, and only show related Indicator that selected
Everything work just fine, even switching around the indicator many times.
Later, Close it and reopen, 3 out of 4 charts having Axis-x label became 1,2,3,...
2nd Experiment:
I created Whole new file in Excel 2010, with 4 indicators and same VBA code.
Then Close and reopen, Axis-x format remain Perfectly good.
Transfer the file into Excel 2016 machine. Close and reopen, the Axis-x became 1,2,3....
*** Current Excel Version 1705 (Build 8201.2075)
*** Attach with these experiment files
4Q Demo.zip
Appreciate, who got interested into this issue, have a look on my file.
Share with me, if you do have any solution for that. Thanks
I found out as long as the Chart is not hide, then the axis-x will remain correctly. But this do not really help, when hiding additional chart is a must.
Another temporary workaround method is :
1) moving the data table to another worksheet.
2) Then the set the Chart's data range to another worksheet (Cannot be the same worksheet with Chart).
That will work perfectly, now can hide the chart while maintain axis-x correctly.
**** Only drawback, table have to move or duplicate into another worksheet
**** Probably Microsoft will solve this after Version 1705 (Build 8201.2075)
Regarding creating an automatic Excel sheet from an Excel template for a user that uses data from the database.
Essentially, I'm looking for a way to fill out the fields in this Excel sheet (and have the graph automatically change) and for the Excel sheet to pop up as a new file for the user (i.e. the template would stay untouched). You'll see in the Excel sheet that there are a number of cells that need to be filled from Access. I have a query in Access PER CELL that needs to be filled.
So, essentially I have 14 queries and I need the results of those queries to appear in the cells of a local version of an Excel template.
I've found this but I'm having troubles connecting the dots to my actual task that needs to be done.
I'm looking into SSRS with intention of exporting a lot of the reports to excel. The problem is that when you export it changes cell sizes and removes borders to try and keep the original report format.
Is there anyway to stop this happening? So that the report exports to excel with the "usual" excel formatting? If it requires any coding that's fine as most of my reports will be run from C# code.
Thanks
Mat
You could export to a CSV and import that into a spreadsheet, possibly with some sort of template sheet for the particular report.
You could export the data to Sheet2. Mark sheet 2 as hidden.
Create your designer report on Sheet1.
Run an Excel Macro to read data from Sheet2 and put on Sheet1.
It's not pretty, but you could consider generating Excel sheets from the XML renderer, as described here - this would give you full control over the appearance of the worksheet.
I think what's happening is that you have stacks of fields in your reports that aren't aligned with each other and so when you export to excel, it compensates and generates extra columns to try to come close to what you report looks like.
I used to get this all time and then I figured out that if you used as little tables as possible while using more grouping within that grid, it goes along way to send a clean format to excel. Also watch out if you use a report header whose ends don't align to columns within the report.
So match object's begin and ends with other objects' or span of cells' begins and ends.
I create a seperate report with the same data, but no formatting.
Include a button to export on the main report, and when they click it, it directs them to an unformatted version of the report that is automatically exported to Excel.
I am trying to use a VBA macro (for Office 2003) to do the following:
In Excel, the user will select a range of cells
In Word the user will call the macro (via a button or shortcut) to insert the selected Excel range as an embedded object
The code is not the problem so far, my problems are:
Given that the user is working in a Word document, most likely will use the same fonts in Excel
When Excel range was inserted in Word and they both use the same font names and sizes, they look different inside Word ( fonts look as if they stretched a bit)
Styling Cell borders in Excel is not like styling cell borders in Word
I do appreciate any advice on this regards
When you paste as an Excel Worksheet Object, what Word is actually displaying is an image created by Excel. Notice that you can't select any text, for example. Word appears to be distorting the image ever so slightly, so that the fonts won't line up.
Edit: I can't speak for Office 2003, but Office 2007 defaults to the HTML format using PasteExcelTable. The exact macro statement is
Selection.PasteExcelTable False, False, False
This will give formatting that is compatible with Word, but unfortunately the data is not live and won't get updated as the spreadsheet is changed. If your requirements don't include live update, try this method.
Is it possible to have the macro creating a table out of the cells (as normally happens when you manually copy them), rather than inserting an Excel Object.
The best visual results results can be achieved by using Selection.CopyPicture(Appearance, Format); however, you will not be able to edit the data inside Word as you will only get a picture.