Member 13488719 Ответов: 0

Как построить график на листе excel с датой и временем по оси x


Я пытаюсь экспортировать данные из кода c# в лист excel и построить график.У меня есть два значения: одно-температура, а другое-Дата-Время.Я успешно экспортирую данные в excel и также строю график.Но с датой на оси x я получаю время как 00:00.
В excel лист только для того, чтобы получить время в правильном формате.Я пошел в настройки.

1. Щелкните правой кнопкой мыши по оси X на диаграмме и выберите в контекстном меню пункт формат оси.
2. Затем в панели формат оси или диалоговое окно Формат Оси во вкладке Параметры оси, проверить
Опция текстовая ось в разделе Тип оси.
В типе оси
a.автоматическое выделение текста axix
b.текстовая ось
c.ось даты
Я выбрал текстовую ось .Затем я получил дату и время на оси X.

Мой вопрос заключается в том,как я могу достичь этого в коде c#.
Заранее спасибо.

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

private void button1_Click(object sender, EventArgs e)
       {
           Excel.Application xlApp;
           Excel.Workbook xlWorkBook;
           Excel.Worksheet xlWorkSheet;
           object misValue = System.Reflection.Missing.Value;

           xlApp = new Excel.Application();
           xlWorkBook = xlApp.Workbooks.Add(misValue);
           xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

           //add data

           xlWorkSheet.Cells[1, 1] = "";
           xlWorkSheet.Cells[1, 2] = "Temperature";

           for (int i = 0; i < mytemp.Length; i++)
           {

               xlWorkSheet.Cells[i + 2, 1] = datetimeArray[i];
               xlWorkSheet.Cells[i + 2, 2] = mytemp[i];
           }
           string number = 'd' + mytemp.Length.ToString();
           Excel.Range chartRange;

           Excel.ChartObjects xlCharts =
          (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
           Excel.ChartObject myChart =
          (Excel.ChartObject)xlCharts.Add(200,200,200,200);
           Excel.Chart chartPage = myChart.Chart;

           Excel.Axis xAxis = (Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlValue,
           Excel.XlAxisGroup.xlPrimary);
           xAxis.HasTitle = true;
           xAxis.AxisTitle.Caption = "Date Time";




           chartRange = xlWorkSheet.get_Range("A1",number);
           chartPage.SetSourceData(chartRange, misValue);
           chartPage.ChartType = Excel.XlChartType.xlLine;

           //export chart as picture file
           chartPage.Export(@"C:\Users\Akhand Jyoti\Desktop\Receive2", "BMP",
           misValue);

           xlWorkBook.SaveAs("graph.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
           xlWorkBook.Close(true, misValue, misValue);
           xlApp.Quit();

           releaseObject(xlWorkSheet);
           releaseObject(xlWorkBook);
           releaseObject(xlApp);

           MessageBox.Show("Excel file created , you can find the file c:\\csharp-
           Excel.xls");


   }
   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();
           }
    }

Maciej Los

Правильно ли Excel отображает тип данных даты?

Member 13488719

да, это показ.После форматирования осей Установите тип оси в =текстовая ось.

0 Ответов