Mallesh Shantagiri Ответов: 1

Series. values в C# для диапазона диаграмм excel?


У меня есть проблема с excel, пожалуйста, позвольте мне помочь, как я могу ее решить. Ниже приведен код, который я использую сейчас, но он не работает .
наконец, side code series. values должен обновить файл excel как недавно обновленный, так как я могу его использовать. я делаю это, чтобы увеличить диапазон графика.
Пожалуйста, проверьте приведенный ниже код и дайте мне знать, как его решить.
Заранее спасибо, за любые запросы верните меня обратно.

Что я уже пробовал:

     Excel.Application app = new Excel.Application();
     // Excel.Application xlApp;
      Excel.Workbook xlWorkBook;
      Excel._Worksheet sheet;
      Excel.ChartObject chartObj;
      Excel._Chart chart;
      Excel.Series series;
      object useDefault = Type.Missing;
      Excel.Workbook book;
      Excel.ChartObjects grph;

      xlWorkBook = app.Workbooks.Open(@"E:\\test\\DTS-CODE");//Open the work book
      sheet = xlWorkBook.Sheets["Trend_NCM"];//Select the sheet the chart is on
      char oldformula , newformula;
      long i, s;
      Excel.Range orng = null;
      string[] stmp, sbase;
      string cha, rta;
      string startingpoint, endpoint;
      chart = sheet.ChartObjects("Chart 1").chart;
      chart.SetSourceData(sheet.Range["A2:A7"], Excel.XlRowCol.xlRows);


      for (s = 1; s < chart.SeriesCollection().count;s++)
      {
string sting = "=SERIES(Trend_NCM!$A$3,Trend_NCM!$B$2:$AH$2,Trend_NCM!$B$3:$AH$3,1)";
          //series.Values
          rta = chart.SeriesCollection(s).Formula;
         // foreach(sbase in chart.SeriesCollection().count)
          //series = rta.Chart.SeriesCollection();
         // series = chart.SeriesCollection(s).Formula;
           series= null ;
          cha = chart.SeriesCollection(s).Formula;

          string[] cha1 = cha.Split(',');
          string[] cha2 = cha1[2].Split(':');
          startingpoint = cha2[0];
          //endpoint = cha2[1];
          Range xlrange = null;
          Excel.Range last = sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
          Excel.Range range = sheet.get_Range("A1", last);
        int iTotalColumns = sheet.UsedRange.Columns.Count;
         // Excel.Range xlRange = sheet.UsedRange;
     // xlrange = sheet.get_Range(xlrange.EntireRow.Address, useDefault);
       // endpoint = iTotalColumns.ToString();
          endpoint = "Trend_NCM!$AH$5";
          **series.Values = startingpoint+ "&amp;"+ ":" +"&amp;"+ endpoint;**

      }

1 Ответов

Рейтинг:
9

#realJSOP

Во - первых - и это всего лишь личное мнение-большинство ваших имен переменных отстой.

Во-вторых, вы должны разделить струну, а затем снова собрать ее.

// a sample formula
string cha = "=SERIES(Trend_NCM!$A$3,Trend_NCM!$B$2:$AH$2,Trend_NCM!$B$3:$AH$3,1)";
// split the whole string on commas
string[] cha1 = cha.Split(',');
// split the endpoint on colon
string[] cha2 = cha1[2].Split(':');
// split the cell range on $
string[] cha3 = cha2[1].Trim('$').Split('$');
// assign the new value
cha3[1] = "9";
// put the cell range back together
cha2[1] = string.Format("${0}${1}", cha3[0], cha3[1]);
// put the endpoint back together
cha1[2] = string.Format("{0}:{1}", cha2[0], cha2[1]);
// reassemble the original string
string temp = string.Empty;
for(int i = 0; i < cha1.Length; i++)
{
    temp = (string.IsNullOrEmpty(temp)) ? cha1[i] : string.Concat(temp, ",", cha1[i]);
}
//assign the new string to the original variable
cha = temp;


Это вопрос выработки логики. Это критический навык, который вам действительно нужно развивать.