Bonjour;
j'essai d'importer un ensemble de pair de valeurs (val1,val2) généré par une méthode vers excel pour dessiner un graphique en utilisant ces valeurs, mais j'obtiens toujours cette exception Cannot expand named range. (à la ligne 27 : cmd1.ExecuteNonQuery();)
voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
private int index = 0;
        private bool first = true;
        private void InsertValuesIntoExcel(int vala, int valb)
        {
            string fileName = @"C:\Users\LUNA\Documents\test.xlsx";
            string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" +
                    "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName);
 
 
            using (OleDbConnection cn = new OleDbConnection(connectionString))
            {
                cn.Open();
                if (first)
                {
                    OleDbCommand cmd0 = new OleDbCommand(@"CREATE TABLE [RawData] " +
                                                         "([valueA] int, " + "[valueB] int)", cn);
                    cmd0.ExecuteNonQuery();
                    first = false;
                }
                OleDbCommand cmd1 = new OleDbCommand("INSERT INTO [RawData] " +
                     "([valueA],[valueB]) " +
                     "VALUES(@value1,@value2)", cn);
                cmd1.Parameters.AddWithValue("@value1", vala);
                cmd1.Parameters.AddWithValue("@value2", valb);
                //cmd1.Parameters.Add("@value1", OleDbType.Integer).Value = vala;
                //cmd1.Parameters.Add("@value2", OleDbType.Integer).Value = valb;
                cmd1.ExecuteNonQuery(); // l'exception se fait ICI
            }
 
        }
 
        private void DesignChartInExcel(int nbLigne)
        {
            string fileName = @"C:\Users\LUNA\Documents\test.xlsx";
            object missing = Type.Missing;
 
            object misValue = System.Reflection.Missing.Value;
 
            //create excel
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
 
            //add excel workbook
            Microsoft.Office.Interop.Excel.Workbook wb = excel.Workbooks.Open(fileName);
            // Add chart.
            var sheet = (Worksheet)excel.ActiveSheet;
            var charts = sheet.ChartObjects() as
                Microsoft.Office.Interop.Excel.ChartObjects;
            var chartObject = charts.Add(60, 10, 600, 300) as
                Microsoft.Office.Interop.Excel.ChartObject;
            var chart = chartObject.Chart;
            // Set chart range.
            var range = (Range)sheet.get_Range("A1", "b101");
           // range.NumberFormat = "0";
            chart.SetSourceData(range,Missing.Value);
 
            // Set chart properties.
            chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine;
            chart.ChartWizard(Source: range,
                Title: "Complexity Chart - AFDC is satisfied",
                CategoryTitle: "X",
                ValueTitle: "Y");
            //wb.Save();
            wb.Close(true, misValue, misValue);
            excel.Quit();
 
            releaseObject(sheet);
            releaseObject(wb);
            releaseObject(excel);
        }
 
        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                //MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }
Merci