CREATE procedure sp_Excel @Method varchar(100), @xlApp int = 0 output, @xlBook int = 0 output, @xlSheet int = 0 output, @xlRange int = 0 output, @ErrNo int = 0, @FileName varchar(500) = '', @WorksheetIndex int = 0, @WorksheetName varchar(31) = '', @CellIdx_FromRow int = 0, @CellIdx_FromCol int = 0, @CellIdx_ToRow int = 0, @CellIdx_ToCol int = 0, @Color varchar(30) = '', @Value varchar(4000) = '', @Font varchar(100) = '', @Bold varchar(5) = '', @Italic varchar(5) = '', @Underline varchar(30) = '', @Size int = 0, @HorizontalAlignment varchar(10) = '', @VerticalAlignment varchar(10) = '', @WrapText varchar(5) = '', @ShrinkToFit varchar(5) = '', @MergeCells varchar(5) = '', @NumberFormat varchar(20) = '', @BackColor varchar(30) = 'None', @BorderType varchar(20) = 'None', @BorderStyle varchar(20) = 'Single', @BorderWeight varchar(20) = 'Thin', @BorderColor varchar(20) = 'Black', @Hyperlink varchar(500) = '' as /* Copyright (C) 2006 Tadd C. Schlottman This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. All copyright notices regarding sp_Excel must remain intact in the scripts and in the output. Any "powered by" text/logo with a link back to http://www.maxprecision.com MUST remain visible when the pages are viewed on the internet or intranet. Support can be obtained from our support forums at: http://www.maxprecision.com Correspondence and Marketing Questions can be sent to: support@maxprecision.com Version 1.0 - 1/27/2006 Version 1.1 - 2/2/2006 Instructions located at the bottom of this script */ Declare @RC int, @S varchar(4000), @T int, @Src varchar(255), @Desc varchar(1000) Set @RC = 0 If @Method = 'Workbook.Initialize' Begin IF @xlApp <> 0 EXEC @ErrNo = sp_OADestroy @xlApp IF @xlBook <> 0 EXEC @ErrNo = sp_OADestroy @xlBook EXEC @ErrNo = sp_OACreate 'Excel.Application', @xlApp OUT EXEC @ErrNo = sp_OAMethod @xlApp, 'Workbooks.Add', @xlBook OUT EXEC @ErrNo = sp_OASetProperty @xlApp, 'DisplayAlerts', 'False' IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Workbook.Open' Begin IF @xlApp <> 0 EXEC @ErrNo = sp_OADestroy @xlApp IF @xlBook <> 0 EXEC @ErrNo = sp_OADestroy @xlBook EXEC @ErrNo = sp_OACreate 'Excel.Application', @xlApp OUT EXEC @ErrNo = sp_OAMethod @xlApp, 'Workbooks.Open', @xlBook OUT, @FileName EXEC @ErrNo = sp_OASetProperty @xlApp, 'DisplayAlerts', 'False' IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Workbook.Save' Begin EXEC @ErrNo = sp_OAMethod @xlBook, 'SaveAs', NULL, @FileName IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Workbook.Release' Begin EXEC @ErrNo = sp_OAMethod @xlBook, 'Close' IF @xlRange <> 0 EXEC @ErrNo = sp_OADestroy @xlRange IF @xlSheet <> 0 EXEC @ErrNo = sp_OADestroy @xlSheet IF @xlBook <> 0 EXEC @ErrNo = sp_OADestroy @xlBook IF @xlApp <> 0 EXEC @ErrNo = sp_OADestroy @xlApp IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Workbook.ErrorMsg' Begin PRINT 'sp_Excel : Error Information' EXEC @ErrNo = sp_OAGetErrorInfo @xlApp, @Src OUT, @Desc OUT IF @ErrNo = 0 BEGIN SELECT @S = ' Source: ' + @Src PRINT @S SELECT @S = ' Description: ' + @Desc PRINT @S print @Value END RETURN(1) End If @Method = 'Worksheet.Select' Begin IF @xlRange <> 0 EXEC @ErrNo = sp_OADestroy @xlRange IF @xlSheet <> 0 EXEC @ErrNo = sp_OADestroy @xlSheet EXEC @ErrNo = sp_OAMethod @xlBook, 'Worksheets.Item', @xlSheet OUT, @WorksheetIndex EXEC @ErrNo = sp_OAMethod @xlSheet, 'Activate' IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Worksheet.Clear' Begin EXEC @ErrNo = sp_OAMethod @xlSheet, 'Cells.Clear', @T OUT IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Worksheet.Rename' Begin EXEC @ErrNo = sp_OASetProperty @xlSheet, 'Name', @WorksheetName IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Worksheet.Insert' Begin IF @xlRange <> 0 EXEC @ErrNo = sp_OADestroy @xlRange IF @xlSheet <> 0 EXEC @ErrNo = sp_OADestroy @xlSheet EXEC @ErrNo = sp_OAMethod @xlBook, 'Worksheets.Add', @xlSheet OUT EXEC @ErrNo = sp_OAGetProperty @xlSheet, 'Activate' If @WorksheetName <> '' Begin EXEC @RC=sp_Excel @Method='Worksheet.Rename', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @WorksheetName=@WorksheetName End IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Worksheet.Delete' Begin EXEC @ErrNo = sp_OAMethod @xlSheet, 'Delete', @T OUT IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Worksheet.Hide' Begin EXEC @ErrNo = sp_OASetProperty @xlSheet, 'Visible', False IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Worksheet.Unhide' Begin EXEC @ErrNo = sp_OASetProperty @xlSheet, 'Visible', True IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Worksheet.TabColor' Begin Select @T = Case @Color When 'Black' Then 1 When 'Dark_Red' Then 9 When 'Red' Then 3 When 'Pink' Then 7 When 'Rose' Then 38 When 'Brown' Then 53 When 'Orange' Then 46 When 'Light_Orange' Then 45 When 'Gold' Then 44 When 'Tan' Then 40 When 'Olive_Green' Then 52 When 'Dark_Yellow' Then 12 When 'Lime' Then 43 When 'Yellow' Then 6 When 'Light_Yellow' Then 36 When 'Dark_Green' Then 51 When 'Green' Then 10 When 'Sea_Green' Then 50 When 'Bright_Green' Then 4 When 'Light_Green' Then 35 When 'Dark_Teal' Then 49 When 'Teal' Then 14 When 'Aqua' Then 42 When 'Turquoise' Then 8 When 'Light_Turquoise' Then 34 When 'Dark_Blue' Then 11 When 'Blue' Then 5 When 'Light_Blue' Then 41 When 'Sky_Blue' Then 33 When 'Pale_Blue' Then 37 When 'Indigo' Then 55 When 'Blue_Gray' Then 47 When 'Violet' Then 13 When 'Plum' Then 54 When 'Lavender' Then 39 When 'Gray_80' Then 56 When 'Gray_50' Then 16 When 'Gray_40' Then 48 When 'Gray_25' Then 15 When 'White' Then 2 end EXEC @ErrNo = sp_OASetProperty @xlSheet, 'Tab.ColorIndex', @T IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.SelectCell' Begin IF @xlRange <> 0 EXEC @ErrNo = sp_OADestroy @xlRange EXEC @ErrNo = sp_OAMethod @xlSheet, 'Cells', @xlRange OUT, @CellIdx_FromRow, @CellIdx_FromCol IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.SelectRange' Begin Declare @CellAddressFr varchar(10), @CellAddressTo varchar(10) EXEC @RC=sp_Excel @Method='Range.SelectCell', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output, @CellIdx_FromRow=@CellIdx_FromRow, @CellIdx_FromCol=@CellIdx_FromCol EXEC @ErrNo = sp_OAGetProperty @xlRange, 'Address', @CellAddressFr OUT EXEC @RC=sp_Excel @Method='Range.SelectCell', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output, @CellIdx_FromRow=@CellIdx_ToRow, @CellIdx_FromCol=@CellIdx_ToCol EXEC @ErrNo = sp_OAGetProperty @xlRange, 'Address', @CellAddressTo OUT IF @xlRange <> 0 EXEC @ErrNo = sp_OADestroy @xlRange EXEC @ErrNo = sp_OAMethod @xlSheet, 'Range', @xlRange OUT, @CellAddressFr, @CellAddressTo IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.SetFormula' Begin EXEC @ErrNo = sp_OASetProperty @xlRange, 'Formula', @Value IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.Column.SetWidth' Begin EXEC @ErrNo = sp_OASetProperty @xlRange, 'ColumnWidth', @Value IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.Row.SetHeight' Begin EXEC @ErrNo = sp_OASetProperty @xlRange, 'RowHeight', @Value IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.AutoFit' Begin If @Value = 'ColFit' EXEC @ErrNo = sp_OAMethod @xlRange, 'Columns.AutoFit', @T OUT If @Value = 'RowFit' EXEC @ErrNo = sp_OAMethod @xlRange, 'Rows.AutoFit', @T OUT IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.AutoFilter' Begin EXEC @ErrNo = sp_OAMethod @xlRange, 'AutoFilter', @T OUT IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.Column.Hide' Begin EXEC @ErrNo = sp_OASetProperty @xlRange, 'EntireColumn.Hidden', True IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.Column.Unhide' Begin EXEC @ErrNo = sp_OASetProperty @xlRange, 'EntireColumn.Hidden', False IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.Rows.Hide' Begin EXEC @ErrNo = sp_OASetProperty @xlRange, 'EntireRow.Hidden', True IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.Rows.Unhide' Begin EXEC @ErrNo = sp_OASetProperty @xlRange, 'EntireRow.Hidden', False IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End If @Method = 'Range.Format' Begin If @Value <> '' EXEC @ErrNo = sp_OASetProperty @xlRange, 'Value', @Value If @Bold <> '' EXEC @ErrNo = sp_OASetProperty @xlRange, 'Font.Bold', @Bold If @Italic <> '' EXEC @ErrNo = sp_OASetProperty @xlRange, 'Font.Italic', @Italic If @UnderLine <> '' Begin Select @T = Case @Underline When 'None' Then -4142 When 'Single' Then 2 When 'Double' Then -4119 Else 'None' end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Font.Underline', @T End If @Color <> '' Begin Select @T = Case @Color When 'Black' Then 1 When 'Dark_Red' Then 9 When 'Red' Then 3 When 'Pink' Then 7 When 'Rose' Then 38 When 'Brown' Then 53 When 'Orange' Then 46 When 'Light_Orange' Then 45 When 'Gold' Then 44 When 'Tan' Then 40 When 'Olive_Green' Then 52 When 'Dark_Yellow' Then 12 When 'Lime' Then 43 When 'Yellow' Then 6 When 'Light_Yellow' Then 36 When 'Dark_Green' Then 51 When 'Green' Then 10 When 'Sea_Green' Then 50 When 'Bright_Green' Then 4 When 'Light_Green' Then 35 When 'Dark_Teal' Then 49 When 'Teal' Then 14 When 'Aqua' Then 42 When 'Turquoise' Then 8 When 'Light_Turquoise' Then 34 When 'Dark_Blue' Then 11 When 'Blue' Then 5 When 'Light_Blue' Then 41 When 'Sky_Blue' Then 33 When 'Pale_Blue' Then 37 When 'Indigo' Then 55 When 'Blue_Gray' Then 47 When 'Violet' Then 13 When 'Plum' Then 54 When 'Lavender' Then 39 When 'Gray_80' Then 56 When 'Gray_50' Then 16 When 'Gray_40' Then 48 When 'Gray_25' Then 15 When 'White' Then 2 Else 1 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Font.ColorIndex', @T End If @Size <> 0 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Font.Size', @Size If @HorizontalAlignment <> '' Begin Select @T = Case @HorizontalAlignment When 'Left' Then -4131 When 'Center' Then -4108 When 'Right' Then -4152 Else -4131 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'HorizontalAlignment', @T End If @VerticalAlignment <> '' Begin Select @T = Case @VerticalAlignment When 'Bottom' Then -4107 When 'Top' Then -4160 When 'Center' Then -4108 Else -4107 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'VerticalAlignment', @T End If @WrapText <> '' EXEC @ErrNo = sp_OASetProperty @xlRange, 'WrapText', @WrapText If @ShrinkToFit <> '' EXEC @ErrNo = sp_OASetProperty @xlRange, 'ShrinkToFit', @ShrinkToFit If @MergeCells <> '' EXEC @ErrNo = sp_OASetProperty @xlRange, 'MergeCells', @MergeCells If @NumberFormat <> '' EXEC @ErrNo = sp_OASetProperty @xlRange, 'NumberFormat', @NumberFormat If @BackColor <> 'None' Begin Select @T = Case @BackColor When 'None' Then 0 When 'Black' Then 1 When 'Dark_Red' Then 9 When 'Red' Then 3 When 'Pink' Then 7 When 'Rose' Then 38 When 'Brown' Then 53 When 'Orange' Then 46 When 'Light_Orange' Then 45 When 'Gold' Then 44 When 'Tan' Then 40 When 'Olive_Green' Then 52 When 'Dark_Yellow' Then 12 When 'Lime' Then 43 When 'Yellow' Then 6 When 'Light_Yellow' Then 36 When 'Dark_Green' Then 51 When 'Green' Then 10 When 'Sea_Green' Then 50 When 'Bright_Green' Then 4 When 'Light_Green' Then 35 When 'Dark_Teal' Then 49 When 'Teal' Then 14 When 'Aqua' Then 42 When 'Turquoise' Then 8 When 'Light_Turquoise' Then 34 When 'Dark_Blue' Then 11 When 'Blue' Then 5 When 'Light_Blue' Then 41 When 'Sky_Blue' Then 33 When 'Pale_Blue' Then 37 When 'Indigo' Then 55 When 'Blue_Gray' Then 47 When 'Violet' Then 13 When 'Plum' Then 54 When 'Lavender' Then 39 When 'Gray_80' Then 56 When 'Gray_50' Then 16 When 'Gray_40' Then 48 When 'Gray_25' Then 15 When 'White' Then 2 Else 0 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Interior.ColorIndex', @T End If @BorderType <> 'None' Begin If @BorderType = 'None' Begin EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(5).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(6).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(11).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(12).LineStyle', -4142 End If @BorderType = 'All' Begin Select @T = Case @BorderStyle When 'None' Then -4142 When 'Single' Then 1 When 'Double' Then -4119 When 'Dash' Then -4115 When 'DashDot' Then 4 When 'DashDotDot' Then 5 When 'Dot' Then -4118 When 'SlantDashDot' Then 13 Else -4142 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(5).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(6).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(11).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(12).LineStyle', @T Select @T = Case @BorderWeight When 'Thin' Then 2 When 'Hairline' Then 1 When 'Medium' Then -4138 When 'Thick' Then 4 Else 2 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).Weight', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).Weight', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).Weight', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).Weight', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(11).Weight', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(12).Weight', @T Select @T = Case @BorderColor When 'Black' Then 1 When 'Dark_Red' Then 9 When 'Red' Then 3 When 'Pink' Then 7 When 'Rose' Then 38 When 'Brown' Then 53 When 'Orange' Then 46 When 'Light_Orange' Then 45 When 'Gold' Then 44 When 'Tan' Then 40 When 'Olive_Green' Then 52 When 'Dark_Yellow' Then 12 When 'Lime' Then 43 When 'Yellow' Then 6 When 'Light_Yellow' Then 36 When 'Dark_Green' Then 51 When 'Green' Then 10 When 'Sea_Green' Then 50 When 'Bright_Green' Then 4 When 'Light_Green' Then 35 When 'Dark_Teal' Then 49 When 'Teal' Then 14 When 'Aqua' Then 42 When 'Turquoise' Then 8 When 'Light_Turquoise' Then 34 When 'Dark_Blue' Then 11 When 'Blue' Then 5 When 'Light_Blue' Then 41 When 'Sky_Blue' Then 33 When 'Pale_Blue' Then 37 When 'Indigo' Then 55 When 'Blue_Gray' Then 47 When 'Violet' Then 13 When 'Plum' Then 54 When 'Lavender' Then 39 When 'Gray_80' Then 56 When 'Gray_50' Then 16 When 'Gray_40' Then 48 When 'Gray_25' Then 15 When 'White' Then 2 Else 1 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).ColorIndex', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).ColorIndex', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).ColorIndex', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).ColorIndex', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(11).ColorIndex', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(12).ColorIndex', @T End If @BorderType = 'Outside' Begin Select @T = Case @BorderStyle When 'None' Then -4142 When 'Single' Then 1 When 'Double' Then -4119 When 'Dash' Then -4115 When 'DashDot' Then 4 When 'DashDotDot' Then 5 When 'Dot' Then -4118 When 'SlantDashDot' Then 13 Else -4142 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(5).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(6).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(11).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(12).LineStyle', -4142 Select @T = Case @BorderWeight When 'Thin' Then 2 When 'Hairline' Then 1 When 'Medium' Then -4138 When 'Thick' Then 4 Else 2 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).Weight', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).Weight', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).Weight', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).Weight', @T Select @T = Case @BorderColor When 'Black' Then 1 When 'Dark_Red' Then 9 When 'Red' Then 3 When 'Pink' Then 7 When 'Rose' Then 38 When 'Brown' Then 53 When 'Orange' Then 46 When 'Light_Orange' Then 45 When 'Gold' Then 44 When 'Tan' Then 40 When 'Olive_Green' Then 52 When 'Dark_Yellow' Then 12 When 'Lime' Then 43 When 'Yellow' Then 6 When 'Light_Yellow' Then 36 When 'Dark_Green' Then 51 When 'Green' Then 10 When 'Sea_Green' Then 50 When 'Bright_Green' Then 4 When 'Light_Green' Then 35 When 'Dark_Teal' Then 49 When 'Teal' Then 14 When 'Aqua' Then 42 When 'Turquoise' Then 8 When 'Light_Turquoise' Then 34 When 'Dark_Blue' Then 11 When 'Blue' Then 5 When 'Light_Blue' Then 41 When 'Sky_Blue' Then 33 When 'Pale_Blue' Then 37 When 'Indigo' Then 55 When 'Blue_Gray' Then 47 When 'Violet' Then 13 When 'Plum' Then 54 When 'Lavender' Then 39 When 'Gray_80' Then 56 When 'Gray_50' Then 16 When 'Gray_40' Then 48 When 'Gray_25' Then 15 When 'White' Then 2 Else 1 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).ColorIndex', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).ColorIndex', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).ColorIndex', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).ColorIndex', @T End If @BorderType = 'Top' Begin Select @T = Case @BorderStyle When 'None' Then -4142 When 'Single' Then 1 When 'Double' Then -4119 When 'Dash' Then -4115 When 'DashDot' Then 4 When 'DashDotDot' Then 5 When 'Dot' Then -4118 When 'SlantDashDot' Then 13 Else -4142 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(5).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(6).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(11).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(12).LineStyle', -4142 Select @T = Case @BorderWeight When 'Thin' Then 2 When 'Hairline' Then 1 When 'Medium' Then -4138 When 'Thick' Then 4 Else 2 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).Weight', @T Select @T = Case @BorderColor When 'Black' Then 1 When 'Dark_Red' Then 9 When 'Red' Then 3 When 'Pink' Then 7 When 'Rose' Then 38 When 'Brown' Then 53 When 'Orange' Then 46 When 'Light_Orange' Then 45 When 'Gold' Then 44 When 'Tan' Then 40 When 'Olive_Green' Then 52 When 'Dark_Yellow' Then 12 When 'Lime' Then 43 When 'Yellow' Then 6 When 'Light_Yellow' Then 36 When 'Dark_Green' Then 51 When 'Green' Then 10 When 'Sea_Green' Then 50 When 'Bright_Green' Then 4 When 'Light_Green' Then 35 When 'Dark_Teal' Then 49 When 'Teal' Then 14 When 'Aqua' Then 42 When 'Turquoise' Then 8 When 'Light_Turquoise' Then 34 When 'Dark_Blue' Then 11 When 'Blue' Then 5 When 'Light_Blue' Then 41 When 'Sky_Blue' Then 33 When 'Pale_Blue' Then 37 When 'Indigo' Then 55 When 'Blue_Gray' Then 47 When 'Violet' Then 13 When 'Plum' Then 54 When 'Lavender' Then 39 When 'Gray_80' Then 56 When 'Gray_50' Then 16 When 'Gray_40' Then 48 When 'Gray_25' Then 15 When 'White' Then 2 Else 1 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).ColorIndex', @T End If @BorderType = 'Bottom' Begin Select @T = Case @BorderStyle When 'None' Then -4142 When 'Single' Then 1 When 'Double' Then -4119 When 'Dash' Then -4115 When 'DashDot' Then 4 When 'DashDotDot' Then 5 When 'Dot' Then -4118 When 'SlantDashDot' Then 13 Else -4142 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(5).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(6).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(11).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(12).LineStyle', -4142 Select @T = Case @BorderWeight When 'Thin' Then 2 When 'Hairline' Then 1 When 'Medium' Then -4138 When 'Thick' Then 4 Else 2 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).Weight', @T Select @T = Case @BorderColor When 'Black' Then 1 When 'Dark_Red' Then 9 When 'Red' Then 3 When 'Pink' Then 7 When 'Rose' Then 38 When 'Brown' Then 53 When 'Orange' Then 46 When 'Light_Orange' Then 45 When 'Gold' Then 44 When 'Tan' Then 40 When 'Olive_Green' Then 52 When 'Dark_Yellow' Then 12 When 'Lime' Then 43 When 'Yellow' Then 6 When 'Light_Yellow' Then 36 When 'Dark_Green' Then 51 When 'Green' Then 10 When 'Sea_Green' Then 50 When 'Bright_Green' Then 4 When 'Light_Green' Then 35 When 'Dark_Teal' Then 49 When 'Teal' Then 14 When 'Aqua' Then 42 When 'Turquoise' Then 8 When 'Light_Turquoise' Then 34 When 'Dark_Blue' Then 11 When 'Blue' Then 5 When 'Light_Blue' Then 41 When 'Sky_Blue' Then 33 When 'Pale_Blue' Then 37 When 'Indigo' Then 55 When 'Blue_Gray' Then 47 When 'Violet' Then 13 When 'Plum' Then 54 When 'Lavender' Then 39 When 'Gray_80' Then 56 When 'Gray_50' Then 16 When 'Gray_40' Then 48 When 'Gray_25' Then 15 When 'White' Then 2 Else 1 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).ColorIndex', @T End If @BorderType = 'Left' Begin Select @T = Case @BorderStyle When 'None' Then -4142 When 'Single' Then 1 When 'Double' Then -4119 When 'Dash' Then -4115 When 'DashDot' Then 4 When 'DashDotDot' Then 5 When 'Dot' Then -4118 When 'SlantDashDot' Then 13 Else -4142 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(5).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(6).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(11).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(12).LineStyle', -4142 Select @T = Case @BorderWeight When 'Thin' Then 2 When 'Hairline' Then 1 When 'Medium' Then -4138 When 'Thick' Then 4 Else 2 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).Weight', @T Select @T = Case @BorderColor When 'Black' Then 1 When 'Dark_Red' Then 9 When 'Red' Then 3 When 'Pink' Then 7 When 'Rose' Then 38 When 'Brown' Then 53 When 'Orange' Then 46 When 'Light_Orange' Then 45 When 'Gold' Then 44 When 'Tan' Then 40 When 'Olive_Green' Then 52 When 'Dark_Yellow' Then 12 When 'Lime' Then 43 When 'Yellow' Then 6 When 'Light_Yellow' Then 36 When 'Dark_Green' Then 51 When 'Green' Then 10 When 'Sea_Green' Then 50 When 'Bright_Green' Then 4 When 'Light_Green' Then 35 When 'Dark_Teal' Then 49 When 'Teal' Then 14 When 'Aqua' Then 42 When 'Turquoise' Then 8 When 'Light_Turquoise' Then 34 When 'Dark_Blue' Then 11 When 'Blue' Then 5 When 'Light_Blue' Then 41 When 'Sky_Blue' Then 33 When 'Pale_Blue' Then 37 When 'Indigo' Then 55 When 'Blue_Gray' Then 47 When 'Violet' Then 13 When 'Plum' Then 54 When 'Lavender' Then 39 When 'Gray_80' Then 56 When 'Gray_50' Then 16 When 'Gray_40' Then 48 When 'Gray_25' Then 15 When 'White' Then 2 Else 1 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).ColorIndex', @T End If @BorderType = 'Right' Begin Select @T = Case @BorderStyle When 'None' Then -4142 When 'Single' Then 1 When 'Double' Then -4119 When 'Dash' Then -4115 When 'DashDot' Then 4 When 'DashDotDot' Then 5 When 'Dot' Then -4118 When 'SlantDashDot' Then 13 Else -4142 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(5).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(6).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(7).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(8).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(9).LineStyle', -4142 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).LineStyle', @T EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(11).LineStyle', -414 EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(12).LineStyle', -4142 Select @T = Case @BorderWeight When 'Thin' Then 2 When 'Hairline' Then 1 When 'Medium' Then -4138 When 'Thick' Then 4 Else 2 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).Weight', @T Select @T = Case @BorderColor When 'Black' Then 1 When 'Dark_Red' Then 9 When 'Red' Then 3 When 'Pink' Then 7 When 'Rose' Then 38 When 'Brown' Then 53 When 'Orange' Then 46 When 'Light_Orange' Then 45 When 'Gold' Then 44 When 'Tan' Then 40 When 'Olive_Green' Then 52 When 'Dark_Yellow' Then 12 When 'Lime' Then 43 When 'Yellow' Then 6 When 'Light_Yellow' Then 36 When 'Dark_Green' Then 51 When 'Green' Then 10 When 'Sea_Green' Then 50 When 'Bright_Green' Then 4 When 'Light_Green' Then 35 When 'Dark_Teal' Then 49 When 'Teal' Then 14 When 'Aqua' Then 42 When 'Turquoise' Then 8 When 'Light_Turquoise' Then 34 When 'Dark_Blue' Then 11 When 'Blue' Then 5 When 'Light_Blue' Then 41 When 'Sky_Blue' Then 33 When 'Pale_Blue' Then 37 When 'Indigo' Then 55 When 'Blue_Gray' Then 47 When 'Violet' Then 13 When 'Plum' Then 54 When 'Lavender' Then 39 When 'Gray_80' Then 56 When 'Gray_50' Then 16 When 'Gray_40' Then 48 When 'Gray_25' Then 15 When 'White' Then 2 Else 1 end EXEC @ErrNo = sp_OASetProperty @xlRange, 'Borders(10).ColorIndex', @T End End If @Hyperlink <> '' EXEC @ErrNo = sp_OAMethod @xlSheet, 'Hyperlinks.Add', NULL, @xlRange, @Hyperlink If @Font <> '' EXEC @ErrNo = sp_OASetProperty @xlRange, 'Font.Name', @Font IF @ErrNo <> 0 EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo, @Value=@Method End return(@RC) /* sp_Excel Instructions --------------------- Variables The calling procedure must have the following statement: DECLARE @xlApp int, @xlBook int, @xlSheet int, @xlRange int, @RC int Return Code Use @RC to check the return code. A return code of 1 indicates an error occurred. When a return code of 1 is returned Workbook.Release has not been executed. You must build error trapping in your calling procedure using @RC to forward the execution to Workbook.Release. Utilize the GOTO statement with a GOTO label: to skip to your Workbook.Release call when an error occurs. Workbook.Release must be called as the last step in your calling procedure to ensure that the Excel object does not remain in memory if there is an error. The normal way to use sp_Excel in your calling procedure is the following: Workbook.Initialize {Workbook.Open} {Worksheet.?????}|{Range.?????} If @RC > 0 GOTO Release Workbook.Save Release: Workbook.Release Notes: - It is important to remember that you must select a worksheet after calling Worksheet.Initialize. - Place the If @RC > 0 GOTO Release code after any call sp_Excel in which you think you might experience an error. sp_Excel Methods ---------------- Method=Workbook.Initialize Function: Instantiates the Excel object, creates a workbook and sets display alerts off. Call: EXEC @RC=sp_Excel @Method='Workbook.Initialize', @xlApp=@xlApp output, @xlBook=@xlBook output Method=Workbook.Open Function: Instantiates the Excel object, opens an existing Excel workbook. Call: EXEC @RC=sp_Excel @Method='Workbook.Open', @xlApp=@xlApp output, @xlBook=@xlBook output, @FileName='\\server\share\path\filename.xls' Method=Workbook.Save Function: Saves the workbook. Call: EXEC @RC=sp_Excel @Method='Workbook.Save', @xlApp=@xlApp output, @xlBook=@xlBook output, @FileName='\\server\share\path\filename.xls' Method=Workbook.Release Function: Closes the workbook and destroys the Excel object. Call: EXEC @RC=sp_Excel @Method='Workbook.Release', @xlApp=@xlApp output, @xlBook=@xlBook output Method=Workbook.ErrorMsg Function: Provides the OE Application Object error message. Call: EXEC @RC=sp_Excel @Method='Workbook.ErrorMsg', @xlApp=@xlApp output, @xlBook=@xlBook output, @ErrNo=@ErrNo Method=Worksheet.Select Function: Selects and activates a worksheet by index. (base 1) Call: EXEC @RC=sp_Excel @Method='Worksheet.Select', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @WorksheetIndex=1 Method=Worksheet.Clear Function: Removes all contents, formatting, etc from the currently selected worksheet. Call: EXEC @RC=sp_Excel @Method='Worksheet.Clear', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output Method=Worksheet.Rename Function: Changes the name of the currently selected worksheet. Call: EXEC @RC=sp_Excel @Method='Worksheet.Rename', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @WorksheetName='New Sheet Name (<= 31 char)' Method=Worksheet.Insert Function: Insert a worksheet prior to the currently selected worksheet and selects/activates it. Optionally if you pass @WorksheetName the sheet will also be renamed. Call: EXEC @RC=sp_Excel @Method='Worksheet.Insert', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @WorksheetName='New Sheet Name (<= 31 char)' Method=Worksheet.Delete Function: Deletes the currently selected worksheet from the worksheets collection. Call: EXEC @RC=sp_Excel @Method='Worksheet.Delete', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output Method=Worksheet.Hide Function: Hides the currently selected worksheet. Call: EXEC @RC=sp_Excel @Method='Worksheet.Hide', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output Method=Worksheet.Unhide Function: Unhides the currently selected worksheet. Call: EXEC @RC=sp_Excel @Method='Worksheet.Unhide', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output Method=Worksheet.TabColor Function: Sets the tab color for the currently selected worksheet. Acceptable Values for Color: Black;Dark_Red;Red;Pink;Rose;Brown;Orange;Light_Orange;Gold;Tan;Olive_Green;Dark_Yellow;Lime;Yellow;Light_Yellow;Dark_Green;Green;Sea_Green;Bright_Green;Light_Green;Dark_Teal;Teal;Aqua;Turquoise;Light_Turquoise;Dark_Blue;Blue;Light_Blue;Sky_Blue;Pale_Blue;Indigo;Blue_Gray;Violet;Plum;Lavender;Gray_80;Gray_50;Gray_40;Gray_25;White; Call: EXEC @RC=sp_Excel @Method='Worksheet.TabColor', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @Color='Light_Orange' Method=Range.SelectCell Function: Select a single cell on the currently selected worksheet. (base 1) Call: EXEC @RC=sp_Excel @Method='Range.SelectCell', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output, @CellIdx_FromRow=1, @CellIdx_FromCol=1 Method=Range.SelectRange Function: Selects a range of cells on the currently selected worksheet. You must pass the top left cell by index and the bottom right cell by index (base 1) Call: EXEC @RC=sp_Excel @Method='Range.SelectRange', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output, @CellIdx_FromRow=1, @CellIdx_FromCol=1, @CellIdx_ToRow=1, @CellIdx_ToCol=1 Method=Range.SetFormula Function: Sets the formula for the currently selected range of cell(s). Call: EXEC @RC=sp_Excel @Method='Range.SetFormula', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output, @Value='=sum(a1:a10)' Method=Range.Column.SetWidth Function: Sets the width of the columns for the currently selected range of cell(s). Value is a number. Call: EXEC @RC=sp_Excel @Method='Range.Column.SetWidth', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output, @Value='10' Method=Range.Row.SetHeight Function: Sets the height of the rows for the currently selected range of cell(s). Value is a number. Call: EXEC @RC=sp_Excel @Method='Range.Row.SetHeight', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output, @Value='20' Method=Range.AutoFit Function: Autofits the columns or rows for the currently selected range of cell(s). Acceptable Values: ColFit; RowFit; Call: EXEC @RC=sp_Excel @Method='Range.AutoFit', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output, @Value='ColFit' Method=Range.AutoFilter Function: Turns on/off the autofilter for the currently selected range of cell(s). Tip: Set the AutoFilter on prior to AutoFit so the values in the cells will not be hidden behind the down arrow button of the autofilter. Call: EXEC @RC=sp_Excel @Method='Range.AutoFilter', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output Method=Range.Column.Hide Function: Hides the columns for the currently selected range of cell(s). Tip: A column will be become visible if any formatting is subsequently performed on it. So, Always use Range.Column.Hide, Range.Column.Unhide, Range.Row.Hide and Range.Row.Unhide afterany formatting is done. Call: EXEC @RC=sp_Excel @Method='Range.Column.Hide', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output Method=Range.Column.Unhide Function: Unhides the columns for the currently selected range of cell(s). Call: EXEC @RC=sp_Excel @Method='Range.Column.Unhide', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output Method=Range.Row.Hide Function: Hides the rows for the currently selected range of cell(s). Call: EXEC @RC=sp_Excel @Method='Range.Row.Hide', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output Method=Range.Row.Unhide Function: Unhides the rows for the currently selected range of cell(s). Call: EXEC @RC=sp_Excel @Method='Range.Row.Unhide', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output Method=Range.Format Function: Formats the currently selected range of cell(s) and optionally sets the value. Optionals: @Value: Any Value @Font:'Arial';'Arial Black';'Book Antiqua';'Century Gothic';'Comic Sans MS';'Courier New';''Franklink Gothic Medium';'Georgia';'Impact';'Lucida Console';'Microsoft Sans Serif';'Tahoma';'Times New Roman';'Trebuchet MS';'Verdana';'Webdings';'Wingdings';'Wingdings 2';'Wingdings 3' @Bold:'True';'False'; @Italic:'True';'False'; @Underline:'None';'Single';'Double'; @Color:Black;Dark_Red;Red;Pink;Rose;Brown;Orange;Light_Orange;Gold;Tan;Olive_Green;Dark_Yellow;Lime;Yellow;Light_Yellow;Dark_Green;Green;Sea_Green;Bright_Green;Light_Green;Dark_Teal;Teal;Aqua;Turquoise;Light_Turquoise;Dark_Blue;Blue;Light_Blue;Sky_Blue;Pale_Blue;Indigo;Blue_Gray;Violet;Plum;Lavender;Gray_80;Gray_50;Gray_40;Gray_25;White; @Size:(Point Size) 6-100; @HorizontalAlignment:'Left';'Center';'Right' @VerticalAlignment:'Bottom';'Top';'Center' @WrapText:'True';'False'; @ShrinkToFit:'True';'False'; @MergeCells:'True';'False'; @NumberFormat:'General';'0.00';'$#,##0.00';'m/d/yy';'mm/dd/yyyy';'h:mm AM/PM';'hh:mm:ss';'mm/dd/yyyy hh:mm:ss';'0.00%';'@';@ means Text @BackColor:'None';Black;Dark_Red;Red;Pink;Rose;Brown;Orange;Light_Orange;Gold;Tan;Olive_Green;Dark_Yellow;Lime;Yellow;Light_Yellow;Dark_Green;Green;Sea_Green;Bright_Green;Light_Green;Dark_Teal;Teal;Aqua;Turquoise;Light_Turquoise;Dark_Blue;Blue;Light_Blue;Sky_Blue;Pale_Blue;Indigo;Blue_Gray;Violet;Plum;Lavender;Gray_80;Gray_50;Gray_40;Gray_25;White; @Hyperlink:Valid url @BorderType:'None';'All';'Outside';'Top';'Bottom';'Left';'Right' @BorderStyle:'None';'Single';'Double';'Dash';'DashDot';'DashDotDot';'Dot';'SlantDashDot' @BorderWeight:'Hairline';'Thin';'Medium';'Thick' @BorderColor:Black;Dark_Red;Red;Pink;Rose;Brown;Orange;Light_Orange;Gold;Tan;Olive_Green;Dark_Yellow;Lime;Yellow;Light_Yellow;Dark_Green;Green;Sea_Green;Bright_Green;Light_Green;Dark_Teal;Teal;Aqua;Turquoise;Light_Turquoise;Dark_Blue;Blue;Light_Blue;Sky_Blue;Pale_Blue;Indigo;Blue_Gray;Violet;Plum;Lavender;Gray_80;Gray_50;Gray_40;Gray_25;White; Call: EXEC @RC=sp_Excel @Method='Range.Format', @xlApp=@xlApp output, @xlBook=@xlBook output, @xlSheet=@xlSheet output, @xlRange=@xlRange output, @Value='Value', @Bold='True', @Italic='True', @Underline='Single', @Color='Red', @Size=24, @HorizontalAlignment='Center', @VerticalAlignment='Top', @WrapText='True', @ShrinkToFit='True', @MergeCells='True', @NumberFormat='General', @BackColor='Red', @Hyperlink='http://www.MaxPrecision.com', @BorderType='All', @BorderStyle='Single', @BorderWeight='Thin', @BorderColor='Red' */