Skip to content

Instantly share code, notes, and snippets.

@chenxizhang
Created November 24, 2017 23:49
Show Gist options
  • Save chenxizhang/e75b849b1d2ef6eab5d742a9c976527d to your computer and use it in GitHub Desktop.
Save chenxizhang/e75b849b1d2ef6eab5d742a9c976527d to your computer and use it in GitHub Desktop.
Report generator VSTO Csharp Sample
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Tools.Ribbon;
using Microsoft.Office.Interop.Excel;
namespace ExcelAddIn3
{
public partial class Ribbon1
{
private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
{
}
private void button1_Click(object sender, RibbonControlEventArgs e)
{
Worksheet sh = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Add();
sh.Activate();
Range rng = sh.Cells[1, 1];
rng.Value = "Quarterly Sales Report";
rng.Font.Name = "Century";
rng.Font.Size = 26;
rng.Resize[1, 5].Merge();
rng.HorizontalAlignment = XlHAlign.xlHAlignCenter;
Range headerRow = rng.Offset[1, 0].Resize[1, 5];
headerRow.Value = new[] { "Product", "Qtr1", "Qtr2", "Qtr3", "Qtr4" };
headerRow.Font.Bold = true;
Range dataRng = rng.Offset[2, 0].Resize[6, 5];
dataRng.Value = new object [,]{
{"Frames", 5000, 7000, 6544, 4377},
{ "Saddles", 400, 323, 276, 651 },
{ "Brake levers", 12000, 8766, 8456, 9812 },
{ "Chains", 1550, 1088, 692, 853 },
{ "Mirrors", 225, 600, 923, 544 },
{ "Spokes", 6005, 7634, 4589, 8765 }
};
dataRng.Columns.AutoFit();
sh.Range["A1"].ColumnWidth = 20;
sh.Range["B1:E8"].ColumnWidth = 15;
sh.Range["B1:E8"].HorizontalAlignment = XlHAlign.xlHAlignCenter;
ChartObject co = sh.ChartObjects().Add(0, sh.Range["A1:A8"].Height + 5, sh.Range["A1:E1"].Width, 200);
co.Chart.ChartWizard(Source: sh.Range["A2:E8"], Title: "Quarterly sales chart", Gallery: XlChartType.xlColumnClustered);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment