[dba-VB] [AccessD] C# automation of office

Mark Breen marklbreen at gmail.com
Sat Jan 30 06:20:08 CST 2010


Hello John,

Sorry this is late in coming,

the following code is take from a live project of mine where we write to
Excel from VS2008.  I have snipped sections of code from one routine, and I
have highlighted with my comments the five seperate bits I have given you,
each bit is only a few lines of code, but they may be all you need to get
Excel talking.  I hope the code formats ok here, if not, let me know and I
will send you a text file.

Note a few things below
1) you can insert comments easily
2) you can insert columns easily
3) selecting a range if often the first step to performing an action

HINT:  Record a macro in Excel to add color and then you will have the code
to do that from within C#

thanks

Mark





// This bit shows the using statements you will need

using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Tools.Excel;




// This bit shows how to op an connection to Excel

            if (grdParts.RowCount > 0)
            {
                if (MessageBox.Show("Export Master Parts List?", "Export",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == (DialogResult.Yes))
                {
                    this.Cursor = Cursors.WaitCursor;
                    Int32 intPos = bsParts.Position;
                    try
                    {
                        if (SaveChanges())
                        {
                            Microsoft.Office.Interop.Excel.Application xlApp
= new Microsoft.Office.Interop.Excel.Application();
                            Microsoft.Office.Interop.Excel.Workbook xlWB =
xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
                            Microsoft.Office.Interop.Excel.Worksheet xlWS =
(Microsoft.Office.Interop.Excel.Worksheet)xlWB.Worksheets[1];

                            xlApp.Visible = true;

                            xlWS.Cells[2, 6] = "Parts List ";
                            xlWS.Cells[3, 6] = "Date " +
DateTime.Now.ToLongDateString();


// This bit shows how to write comments to excel
                            Microsoft.Office.Interop.Excel.Range nRange;

                            nRange =
(Microsoft.Office.Interop.Excel.Range)xlWS.Cells[intRowIndex +
intRowIncrement, intColumnIndex - 11];
                            nRange.AddComment(strFullComments.Replace("\r",
""));
                            nRange.Comment.Shape.TextFrame.AutoSize = true;




// This but shows  how to insert a column
                            Range rng = (Range)xlWS.Cells[1,2];
                            Range column = rng.EntireColumn;

 column.Insert(XlInsertShiftDirection.xlShiftToRight, false);

 column.Insert(XlInsertShiftDirection.xlShiftToRight, false);


// this bit shows how to save the sheet
                            String strFileName = "C:\\McAfee Prd Report_" +
DateTime.Now.ToLongDateString() + "-" +
DateTime.Now.ToLongTimeString().Replace(":", "") + ".xls";
                            xlWS.SaveAs(strFileName, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing);






On 22 January 2010 18:10, jwcolby <jwcolby at colbyconsulting.com> wrote:

> Does anyone have a good information source for automating office
> (specifically Excel) from C#?
>
> I have a spreadsheet which has code inside of it which pulls data out of
> SQL Server and dumps it
> into pages of the spreadsheet.  I WAS using Access to do this but my Office
> 2007 install broke my
> forms (event properties no longer wire to the code behind form).  Thus from
> C# I need to cause a
> spreadsheet to open, call a method of the code and pass a server / database
> string to it.
>
> Any help will be greatly appreciated.
>
> --
> John W. Colby
> www.ColbyConsulting.com
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>



More information about the dba-VB mailing list