Как установить цвет границы TickLabels excel chart c #

Я разрабатываю диаграмму программно, используя c # и excel interop dll. Я должен установить цвет границы TickLabels в диаграмме excel. вот мой снимок экрана, где я указываю область, цвет границы которой должен быть установлен программно. я попробовал много и искал google, но не нашел подсказки. поэтому, пожалуйста, см. мой pic & code и помогите мне достичь моей цели.

введите описание изображения здесь

вот мой полный код

public ChartData PrepareExcel() { bool flag = false; int rowindex = 3; if (oData != null) { if (oData.Tables.Count > 0) { if (oData.Tables[0].Rows.Count > 0) { Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet1; Excel.Worksheet xlWorkSheet2; Excel.Worksheet xlWorkSheetChart; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); try { xlWorkSheet1 = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkSheet1.Name = "Detail Data"; xlWorkSheet2 = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2); xlWorkSheet2.Name = "Summary Data"; xlWorkSheetChart = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(3); xlWorkSheetChart.Name = "Chart"; // for first sheet start xlWorkSheet1.Cells[1, 1] = "Daily Finished Jobs History Detail Report From " + DateTime.ParseExact(this.startdate, "yyyyMMdd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd") +" To " + DateTime.ParseExact(this.enddate, "yyyyMMdd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd"); xlWorkSheet1.get_Range("A1", "Y1").Merge(true); xlWorkSheet1.get_Range("A1", "Y1").HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; xlWorkSheet1.get_Range("A1", "Y1").Font.Bold = true; xlWorkSheet1.get_Range("A1", "Y1").Font.Size = 14; xlWorkSheet1.get_Range("A3", "Y3").Font.Bold = true; for (int x = 0; x <= oData.Tables[0].Columns.Count - 1; x++) { xlWorkSheet1.Cells[3, x + 1] = oData.Tables[0].Columns[x].ColumnName.ToString(); xlWorkSheet1.Columns[x + 1].AutoFit(); //xlWorkSheet1.Columns[x + 1].Font.Bold = true; } for (int x = 0; x <= oData.Tables[0].Rows.Count - 1; x++) { int row= rowindex + (x + 1); for (int y = 0; y <= oData.Tables[0].Columns.Count - 1; y++) { xlWorkSheet1.Cells[row, y + 1] = oData.Tables[0].Rows[x][y].ToString(); xlWorkSheet1.Columns[1].AutoFit(); } } // for first sheet end // for second sheet start xlWorkSheet2.Cells[1, 1] = "Daily Finished Jobs History Summary Report From " + DateTime.ParseExact(this.startdate, "yyyyMMdd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd") + " To " + DateTime.ParseExact(this.enddate, "yyyyMMdd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd"); xlWorkSheet2.get_Range("A1", "I1").Merge(true); xlWorkSheet2.get_Range("A1", "I1").HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; xlWorkSheet2.get_Range("A1", "I1").Font.Bold = true; xlWorkSheet2.get_Range("A1", "I1").Font.Size = 14; xlWorkSheet2.get_Range("A3", "I3").Font.Bold = true; for (int x = 0; x <= oData.Tables[1].Columns.Count - 1; x++) { xlWorkSheet2.Cells[3, x + 1] = oData.Tables[1].Columns[x].ColumnName.ToString(); xlWorkSheet2.Columns[x + 1].AutoFit(); } for (int x = 0; x <= oData.Tables[1].Rows.Count - 1; x++) { int row = rowindex + (x + 1); for (int y = 0; y <= oData.Tables[1].Columns.Count - 1; y++) { xlWorkSheet2.Cells[row, y + 1] = oData.Tables[1].Rows[x][y].ToString(); xlWorkSheet2.Columns[1].AutoFit(); } flag = true; } //for second sheet end // chart start if (flag) { Excel.SeriesCollection seriesCollection; Excel.Series series1, series2, series3; Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheetChart.ChartObjects(Type.Missing); Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 20, 900, 520); Excel.Chart chartPage = myChart.Chart; chartPage.HasTitle = true; chartPage.ChartTitle.Text = "Daily Job History Chart From " + DateTime.ParseExact(this.startdate, "yyyyMMdd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd") + " To " + DateTime.ParseExact(this.enddate, "yyyyMMdd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd"); chartPage.Legend.Position = XlLegendPosition.xlLegendPositionBottom; seriesCollection = (Excel.SeriesCollection)chartPage.SeriesCollection(Type.Missing); series1 = seriesCollection.NewSeries(); series2 = seriesCollection.NewSeries(); series3 = seriesCollection.NewSeries(); series1.Name = "='Summary Data'!$B$3"; series1.Values = "='Summary Data'!$B$4:$B$" + (5+ oData.Tables[1].Rows.Count); series1.ChartType = XlChartType.xlColumnClustered; series1.AxisGroup = XlAxisGroup.xlSecondary; series2.Name = "='Summary Data'!$C$3"; series2.XValues = "='Summary Data'!$A$4:$A$" + (5 + oData.Tables[1].Rows.Count); series2.Values = "='Summary Data'!$C$4:$C$" + (5 + oData.Tables[1].Rows.Count); series2.ChartType = XlChartType.xlLineMarkers; series3.Name = "='Summary Data'!$D$3"; series3.Values = "='Summary Data'!$D$4:$D$" + (5 + oData.Tables[1].Rows.Count); series3.ChartType = XlChartType.xlLineMarkers; series3.AxisGroup = XlAxisGroup.xlPrimary; Axis axis; axis = (Axis)chartPage.Axes(XlAxisType.xlValue, XlAxisGroup.xlPrimary); axis.HasTitle = true; axis.AxisTitle.Text = "Percentage/Hour"; axis.AxisTitle.Font.Color = Color.Blue; axis.Border.Color = Color.Transparent; axis.HasMajorGridlines = false; axis.HasMinorGridlines = false; axis = (Axis)chartPage.Axes(XlAxisType.xlValue, XlAxisGroup.xlSecondary); axis.HasTitle = true; axis.AxisTitle.Text = "Total Jobs completed"; axis.AxisTitle.Font.Color = Color.Blue; axis.HasMajorGridlines = true; axis.HasMinorGridlines = false; axis = (Excel.Axis)chartPage.Axes(XlAxisType.xlCategory); axis.MajorTickMark = XlTickMark.xlTickMarkNone; axis.HasMajorGridlines = true; chartPage.Axes(Excel.XlAxisType.xlCategory).Select(); chartPage.Axes(Excel.XlAxisType.xlCategory).TickLabels.Orientation = 35; } // chart end string strpath = System.Windows.Forms.Application.StartupPath.ToString() + "\\DailyFinishedJobHistoryReport_"+DateTime.Now.ToString("dd-MM-yyyy")+".xls"; if (File.Exists(strpath)) { File.Delete(strpath); } xlWorkBook.SaveAs(strpath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); } catch (Exception ex) { } finally { xlWorkBook.Close(false, misValue, misValue); xlWorkBook = null; xlApp.Quit(); xlApp = null; GC.Collect(); GC.WaitForPendingFinalizers(); } } } } return this; } 

см. мою область стрелок, где отображается дата . Я хочу изменить цвет границы этой области. веди меня. благодаря

ОБНОВИТЬ

введите описание изображения здесь

см. этот снимок экрана. в основном я хочу изменить цвет границы этой области на прозрачный, но я не понимаю, где мне нужно добавить код. если еще я не ясно, то, пожалуйста, дайте мне знать. благодаря

Предполагая, что вы хотите, что я предложил с помощью комментариев, и не вдаваясь слишком подробно в остальную часть кода (просто быстрое предложение: лучше удалить часть GC ); это то, что вам нужно:

 axis = (Axis)chartPage.Axes(XlAxisType.xlCategory); axis.MajorTickMark = XlTickMark.xlTickMarkNone; axis.Format.Line.Visible = Microsoft.Office.Core.MsoTriState.msoFalse; 

Этот код относится к оси X: вторая строка удаляет основные тики (небольшие вертикальные линии, показанные на рисунке), а третья строка – горизонтальная. Что касается этой второй поправки, помните, что у вас есть .HasMajorGridlines = true; на оси X и, таким образом, вы продолжите видеть горизонтальную линию, одну из основных линий сетки (эту нельзя удалить, если не писать .HasMajorGridlines = false; для оси X).

ПРИМЕЧАНИЕ. Как подчеркнуто OP через комментарии, последняя строка вышеприведенного кода относится к свойству ( Format ), которого нет в Office 2003. Этот код должен хорошо работать с версиями Office 2010 и более поздних версий.

  • Редактирование названия легенды на графике Excel с использованием C #
  • Как отображать данные из листа Excel в диаграмму
  • задать имя графика в Xlwings
  • вставлять кнопку в таблицу excel
  • График диаграммы Excel 2003 XYZ, такой как линейная диаграмма XY
  • невозможно отобразить диаграмму в документе xls с использованием отчетов jasper
  • Линия линейки диаграмм: вывести на передний план, отправить назад
  • Настроить цифровую ось диаграммы Excel
  • Подкачка ошибки вне диапазона при попытке копирования диаграмм Excel в презентацию Power Point
  • Добавление точек данных в таблицу сложенных столбцов в Excel
  • Обходной путь или альтернатива графику (диаграмма) .GetBitmap ()?
  • Давайте будем гением компьютера.