Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用Microsoft.Office.Interop.Excel添加新系列,范围从其他工作表_C#_Excel Interop - Fatal编程技术网

C#使用Microsoft.Office.Interop.Excel添加新系列,范围从其他工作表

C#使用Microsoft.Office.Interop.Excel添加新系列,范围从其他工作表,c#,excel-interop,C#,Excel Interop,我希望Excel看起来像这样: 我必须尝试创建工作簿和工作表,而不是添加图表并从另一个图表中获取范围 在下一步中,我想显示多个在一个图表中显示的线条图 但现在,我只是不知道该怎么做 这是我的代码,也是我尝试过的: 但是我也有一个错误 System.Runtime.InteropServices.COMException: 'Exception from HRESULT: 0x800A03EC' 我尝试过其他方法,但在所有情况下我都出现了这个错误… 我没有找到这样的例子。。 我认为在随机的尝

我希望Excel看起来像这样:

我必须尝试创建工作簿和工作表,而不是添加图表并从另一个图表中获取范围 在下一步中,我想显示多个在一个图表中显示的线条图 但现在,我只是不知道该怎么做

这是我的代码,也是我尝试过的:

但是我也有一个错误

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;


        }
    }
}
使用Microsoft.Office.Interop.Excel;
使用制度;
使用System.Collections.Generic;
使用系统组件模型;
使用系统数据;
使用系统图;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows.Forms;
命名空间卓越测试
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
Microsoft.Office.Interop.Excel.Application xlApp;
xlApp=新的Microsoft.Office.Interop.Excel.Application
{
DisplayAlerts=true,
可见=真
};
工作簿报告工作簿=xlApp.Workbooks.Add();
工作表reportWorksheet=reportWorkbook.Worksheets.Add();
报告工作表。单元格[1,“B”]=“V”;
报表工作表。单元格[1,“A”]=“容量”;
int c=0;
int i=2;
双v=2.5;
双vDiff=0.050;
而(i<30)
{
单元格[i,“B”]=v;
reportWorksheet.Cells[i,“A”]=c;
v+=vDiff;
vDiff-=0.001;
c+=10;
i++;
}
工作表ChartWorksheet=reportWorkbook.Worksheets.Add();
射程图射程;
ChartObjects xlCharts=(ChartObjects)ChartWorksheet.ChartObjects(Type.Missing);
ChartObject myChart=(ChartObject)xlCharts.Add(10,80300250);
Chart chartPage=myChart.Chart;
chartRange=ChartWorksheet.get_范围(“'Sheet2'!A1”,“'Sheet2'!B29”);
chartPage.SetSourceData(chartRange);
//chartPage.ChartType=Excel.XlChartType.xlLine;
chartPage.ChartType=XlChartType.xlLine;
}
}
}
而不是使用此

chartRange=ChartWorksheet.get_范围('Sheet2'!A1“,'Sheet2'!B29”)

使用以下代码选择范围

chartRange = reportWorksheet.get_Range("A1","B39");
你应该让它工作起来

编辑 要获得侧面电压,请尝试以下操作:

Worksheet ChartWorksheet = reportWorkbook.Worksheets.Add();
ChartWorksheet = reportWorkbook.ActiveSheet;
ChartObjects xlCharts = (ChartObjects)ChartWorksheet.ChartObjects(Type.Missing);
ChartObject myChart = (ChartObject)xlCharts.Add(10, 80, 300, 250);
Chart chartPage = myChart.Chart;
SeriesCollection oSeriesCollection = (SeriesCollection)myChart.Chart.SeriesCollection();
Series Data = oSeriesCollection.NewSeries();
Data.XValues = reportWorksheet.get_Range("A2", "A29");
Data.Values = reportWorksheet.get_Range("B2", "B29");
Data.Name = "Volt";
chartPage.ChartType = XlChartType.xlLineMarkers;
渲染输出:


嗨,我只想要相反的。。电压在侧面,容量下降。。我不能换工作表,还有一件事!如何将其用于具有不同电压和不同容量的多个系列?想就此提出一个新问题吗?很好@Amit,花点时间了解更多