2017-12-13 16 views
1

일부 데이터에서 차트를 만들 때 Excel을 사용하는 VB.NET 코드가 있습니다. 차트는 어떻게 작동해야합니까?하지만 VBA에서 VB 형식 지정 방법으로 전환하는 것이 어렵습니다.VB.net 서식 지정 시리즈 및 하나의 범례 항목 제거

전설에있는 시리즈 1 만 삭제하고 차트 자체의 데이터에 투명도를 100으로 설정하거나 채우기를 채우지 않기를 원합니다. 내가 charpage.seriescollection(1).format.fill 등으로 연주했지만, 나는 그것을 얻지 못하고있다.

내 코드 : 나는, Excel에서 일부 데이터를 만들어 그것을 저장, 다음과 같은 코드를 사용

Dim xlApp As Excel.Application = New Microsoft.Office.Interop.Excel.Application() 
    Dim xlWorkBook As Excel.Workbook = Nothing 
    Dim xlWorkbooks As Excel.Workbooks = Nothing 
    Dim xlWorkSheet As Excel.Worksheet = Nothing 

    Dim chartPage As Excel.Chart 
    Dim xlCharts As Excel.ChartObjects 
    Dim myChart As Excel.ChartObject 
    Dim chartRange As Excel.Range 
    Dim Chartarea As Excel.ChartArea 

xlCharts = xlWorkSheet.ChartObjects 
     myChart = xlCharts.Add(10, 80, 900, 500) 
     chartPage = myChart.Chart 
     chartRange = xlWorkSheet.Range("B1", "E2000") 
     chartPage.SetSourceData(Source:=chartRange) 
     chartPage.ChartType = Excel.XlChartType.xlBarStacked 
     chartPage.ChartWizard(Title:="Gantt Chart of Offshore Operations") 
     chartPage.Legend.Position = Excel.XlLegendPosition.xlLegendPositionTop 

     'Y axis 
     With chartPage.Axes(Excel.XlAxisType.xlCategory) 
      .categorytype = Excel.XlCategoryType.xlTimeScale 
      .BaseUnit = Excel.XlTimeUnit.xlDays 
     End With 

     'X axis 
     With chartPage.Axes(Excel.XlAxisType.xlValue) 
      .HasTitle = True 
      .AxisTitle.Caption = "Time (Days)" 
     End With 

답변

1

:

Imports Microsoft.Office.Interop 

Public Class Form1 

    Sub X() 
     Dim xlApp As Excel.Application = Nothing 
     Dim xlWorkBook As Excel.Workbook = Nothing 

     Try 
      xlApp = New Excel.Application() 
      xlWorkBook = xlApp.Workbooks.Open("C:\temp\Book1.xlsx") 
      Dim xlWorkSheet As Excel.Worksheet = xlWorkBook.Worksheets(1) 

      Dim xlCharts As Excel.ChartObjects = xlWorkSheet.ChartObjects 
      Dim myChart As Excel.ChartObject = xlCharts.Add(10, 80, 900, 500) 
      Dim chartPage As Excel.Chart = myChart.Chart 
      Dim chartRange As Excel.Range = xlWorkSheet.Range("B1", "E20") 

      chartPage.SetSourceData(Source:=chartRange) 
      chartPage.ChartType = Excel.XlChartType.xlBarStacked 
      chartPage.ChartWizard(Title:="Gantt Chart of Offshore Operations") 

      ' ***************** 
      myChart.Chart.SeriesCollection(1).Name = "" 
      myChart.Chart.SeriesCollection(1).Interior.ColorIndex = Excel.Constants.xlNone 

      chartPage.Legend.Position = Excel.XlLegendPosition.xlLegendPositionTop 

      'Y axis 
      With chartPage.Axes(Excel.XlAxisType.xlCategory) 
       .categorytype = Excel.XlCategoryType.xlTimeScale 
       .BaseUnit = Excel.XlTimeUnit.xlDays 
      End With 

      'X axis 
      With chartPage.Axes(Excel.XlAxisType.xlValue) 
       .HasTitle = True 
       .AxisTitle.Caption = "Time (Days)" 
      End With 

      xlWorkBook.SaveAs("C:\temp\Book2") 

     Finally 
      xlWorkBook.Close() 
      xlApp.Quit() 

     End Try 

    End Sub 


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Try 
      X() 
     Finally 
      GC.Collect() 
      GC.WaitForPendingFinalizers() 
      GC.Collect() 
      GC.WaitForPendingFinalizers() 
     End Try 

    End Sub 

End Class 

이 생성 :

enter image description here

나는 어느 생각한다 니가 원하는거야.

크레딧 :

+0

야! 그게 바로 내가 한 일이야. 고맙습니다. 나는 올바른 명령으로 약간 고심하고있다. 당신은 주로 당신이 모르는 것에 대한 명령을 얻기 위해 어디로 가나 요? 나는 https://msdn.microsoft.com/en-us/library/dd489216.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1에서 찾고 있었지만 나는 가지고 있지 않다. 지정된 차트 1이 작동하지 않습니다. –

+0

@SeanKilburn 환영합니다. 그것은 단지 구글 - fu :) –