Я хочу, чтобы Excel выглядел так:
![enter image description here](https://i.stack.imgur.com/uPRMq.png)
![enter image description here](https://i.stack.imgur.com/XlKpF.png)
У меня естьчтобы попытаться создать рабочую книгу и рабочие листы, а затем добавить диаграмму и получить диапазон из другой диаграммы для следующего шага, я хочу показать несколько графиков линий, которые выглядят так на одной диаграмме. Но сейчас я просто не знаю, каксделать это
это мой код и то, что я пробовал:
Но я получил ошибку, так как
System.Runtime.InteropServices.COMException: 'Exception from HRESULT: 0x800A03EC'
Я пробовал другие способы, но во всех случаяхЯ получил эту ошибку ...
Я не нашел такого примера .. И я думаю, что при случайных попытках я никогда не получу правильный способ сделать это ...
using Microsoft.Office.Interop.Excel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace EXCELTEST
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Microsoft.Office.Interop.Excel.Application xlApp;
xlApp = new Microsoft.Office.Interop.Excel.Application
{
DisplayAlerts = true,
Visible = true
};
Workbook reportWorkbook = xlApp.Workbooks.Add();
Worksheet reportWorksheet = reportWorkbook.Worksheets.Add();
reportWorksheet.Cells[1, "B"] = "Volt";
reportWorksheet.Cells[1, "A"] = "Capacity";
int c = 0;
int i = 2;
double v = 2.5;
double vDiff = 0.050;
while ( i < 30 )
{
reportWorksheet.Cells[i, "B"] = v;
reportWorksheet.Cells[i, "A"] = c;
v += vDiff;
vDiff -= 0.001;
c += 10;
i++;
}
Worksheet ChartWorksheet = reportWorkbook.Worksheets.Add();
Range chartRange;
ChartObjects xlCharts = (ChartObjects)ChartWorksheet.ChartObjects(Type.Missing);
ChartObject myChart = (ChartObject)xlCharts.Add(10, 80, 300, 250);
Chart chartPage = myChart.Chart;
chartRange = ChartWorksheet.get_Range("'Sheet2'!A1", "'Sheet2'!B29");
chartPage.SetSourceData(chartRange);
//chartPage.ChartType = Excel.XlChartType.xlLine;
chartPage.ChartType = XlChartType.xlLine;
}
}
}