2

これがそれほどトリッキーではないことを願っていますが、私は C# と Visual Studio 2012 を使用して、テキストを解析して一連の を作成するアプリケーションを開発していますList<T>。これで、このデータを Excel スプレッドシートに正常にエクスポートできました。ただし、新しいワークシートでグラフを作成することはできましたが、リストの 1 つまたは他のワークシートの 1 つからデータを取得してグラフ化する方法がわかりません。

これは、グラフの作成に使用したスニペットです。

const string topLeft = "A1";
const string bottomRight = "A4";
const string graphTitle = "License use";
const string xAxis = "Time";
const string yAxis = "Number of licenses";

var charts = worksheet.ChartObjects() as
Microsoft.Office.Interop.Excel.ChartObjects;
var chartObject = charts.Add(60, 10, 300, 300) as
Microsoft.Office.Interop.Excel.ChartObject;
var chart = chartObject.Chart;

// Set chart range.
range = worksheet.get_Range(topLeft, bottomRight);
chart.SetSourceData(range);

// Set chart properties.
chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;
chart.ChartWizard(Source: range,
Title: graphTitle,
CategoryTitle: xAxis,
ValueTitle: yAxis);

必要に応じて、残りの Excel ドキュメント作成を投稿できます。

4

2 に答える 2

0

会社 ABC があり、会社が 5 年間保有しているライセンスの数を示す簡単な例を作成しました。

名前でワークシートを選択し、それにデータを追加したり、グラフを追加したりできることがわかります。

    Sheets excelSheets = workbook.Worksheets;
    string currentSheet = "Sheet1";
    Worksheet worksheet1 = (Worksheet)excelSheets.get_Item(currentSheet);

選択したシートにグラフを追加し、ワークシート 1 の範囲が必要であることを伝えることができます。任意のシートの範囲を使用して、SetSourceData を使用してそのグラフにプッシュすることができます。他のワークシートの 1 つからデータを取得し、グラフ化します。」

        var app = new Application();
        app.Visible = true;
        var workbook = app.Workbooks.Add(1);

        Sheets excelSheets = workbook.Worksheets;
        string currentSheet = "Sheet1";
        Worksheet worksheet1 = (Worksheet)excelSheets.get_Item(currentSheet);


        worksheet1.Cells[1, 1] = "";
        worksheet1.Cells[1, 2] = "Year 1";
        worksheet1.Cells[1, 3] = "Year 2";
        worksheet1.Cells[1, 4] = "Year 3";
        worksheet1.Cells[1, 5] = "Year 4";
        worksheet1.Cells[1, 6] = "Year 5";

        worksheet1.Cells[2, 1] = "Company A";
        worksheet1.Cells[2, 2] = "10";
        worksheet1.Cells[2, 3] = "50";
        worksheet1.Cells[2, 4] = "70";
        worksheet1.Cells[2, 5] = "70";
        worksheet1.Cells[2, 6] = "70";

        worksheet1.Cells[3, 1] = "Company B";
        worksheet1.Cells[3, 2] = "30";
        worksheet1.Cells[3, 3] = "70";
        worksheet1.Cells[3, 4] = "80";
        worksheet1.Cells[3, 5] = "80";
        worksheet1.Cells[3, 6] = "80";

        worksheet1.Cells[4, 1] = "Company C";
        worksheet1.Cells[4, 2] = "55";
        worksheet1.Cells[4, 3] = "65";
        worksheet1.Cells[4, 4] = "75";
        worksheet1.Cells[4, 5] = "75";
        worksheet1.Cells[4, 6] = "75";

        ChartObjects xlCharts = (ChartObjects)worksheet1.ChartObjects(Type.Missing);
        ChartObject myChart = (ChartObject) xlCharts.Add(60, 10, 300, 300);
        Range chartRange = worksheet1.get_Range("A1", "F4");

        Chart chartPage = myChart.Chart;
        chartPage.SetSourceData(chartRange, System.Reflection.Missing.Value);
        chartPage.ChartType = XlChartType.xlLine;
于 2013-06-13T22:00:21.880 に答える