robot.rob
robot.rob

Reputation: 47

Get the formatting of a cell in an Excel 2010 template

Im generating an Excel 2010 report based on a template in code using Microsoft.Office.Interop.Excel;

I need to grab the formatting from a cell in the template and apply it on subsequent cells down the column. To simplify, I want my cells to be right justified. Maybe its faster to specify this explicitly in code but I would prefer if I could base formatting on the template and not hardcode a particular style.

I am using workSheet.get_Range("L2", Type.Missing).get_Resize(1, 1) to select the cell. Any suggestion greatly appreciated.

Upvotes: 0

Views: 476

Answers (1)

jonsca
jonsca

Reputation: 10381

I'm not sure where get_Range() comes into the picture. I usually just get a Range directly.

I think what you are after is something to this effect (filler code there so you can see the variable names):

Dim oExcel As Object
Dim oBook As Excel.Workbook
Dim oSheet As Excel.Worksheet
Dim AlignType As Long

    oExcel = CreateObject("Excel.Application")
    oBook = oExcel.Workbooks.Open("MySheet.xlsx")
    oSheet = oBook.Worksheets(1)
    AlignType = oSheet.Range("G1").HorizontalAlignment
    oSheet.Range("G1:G" & oSheet.Range("G1").End(Excel.XlDirection.xlDown).Row).HorizontalAlignment = AlignType

Change the ranges to suit your own code.

Basically, read the value out (it's an enum, so you don't need to get the actual setting, just its number), and write it back into the other cells. You could probably do it all in one step, I separated it for clarity.

Upvotes: 2

Related Questions