나는 closedXMl과 Excel도 사용하기가 정말 새롭습니다. 어리석은 질문을 하는군.기존 Excel 테이블에 새 행을 추가 할 때 차트가 업데이트되지 않습니다. (명명 된 범위를 사용하지 않아도 됨)
closedXML은 차트를 아직 지원하지 않기 때문에이 문제를 해결하기 위해 떠오르는 유일한 것은 excel table을 사용하여 차트를 만드는 것입니다. 그렇게하면 ClosedXML이 새로운 행을 삽입 할 때 범위를 업데이트 할 것이고 차트가 선택 될 것이라고 생각했습니다. 글쎄, 그렇지 않았다. 최소한 closedXML 라이브러리를 사용하여 코드의 행을 추가 할 때가 아닙니다.
궁금한 점은 Excel에서 자동으로 새 행을 추가하면 차트가 자동으로 업데이트되지만 코드에서 동일한 결과를 얻으려면 명명 된 범위와 함께 OFFSET 수식을 사용하고 차트 원본 데이터를 다음과 같이 설정해야합니다. 명명 된 범위. 당신이 코드는 매우 간단 볼 수 있듯이
Dim ruta As String = Server.MapPath("~/Templates/MyTemplate.xlsx")
Dim wb As New XLWorkbook(ruta)
Dim ws = wb.Worksheet(1)
Dim tblData = ws.Table("Table1")
Dim year As Integer = 2000
For i As Integer = 1 To 13
With tblData.DataRange.LastRow()
.Field("Year").SetValue(year)
.Field("Sales").SetValue(CInt(Math.Floor((2000 - 500 + 1) * Rnd())) + 500)
End With
tblData.DataRange.InsertRowsBelow(1)
year = year + 1
Next
tblData.LastRow.Delete()
그래서 템플릿은 그 구성 : 나는 새 행을 삽입하는 데 사용하는 코드와 아무 잘못이 있다면 내가 알고 싶은 이유 때문이다 두 열 : "년" (표 1 [년]) 및 "판매" (표 1 [판매] 나는 이것이 내가 너희에게 말한대로, 추가 때문에 내 템플릿으로 아무 상관이 있다고 생각하지 않습니다
Excel에서 직접 새 행을 예상대로 작동하고 때 차트 계열에 추가 된 새 행을 포함하지 않는 코드에서 테이블을 생성 할 때
수동으로 새 범위를 추가 할 필요가 있다는 (Sheet1에! 표 [판매] 및 Sheet1에! 표 [년]) 그것은 단지 첫 번째 행 (당신이를 삽입 할 때 기본적으로 추가 된 하나를 포함로 어떤 도움이 많이
PS를 감상 할 수있다
테이블) 다음은 엑셀 템플릿 (\ Templates \ MyTemplate.xlsx)뿐만 아니라 전체 코드가 포함 된 rar에 대한 link입니다.
어떻게 든 테이블의 일부로 삽입을 인식하지 못합니다. – Pynner
@Pynner 네 말이 맞아요! 그래서 ** Table1 [Sales] **를 'Sales'열에 대한 참조로 유지하는 것을 강요하는 방법이 있는지 알고 싶습니다. Excel 차트 시리즈의 값을 설정할 때 Excel이 ** Table1 [Sales] ** (판매 열)이라는 것을 인식하지만이 값을 확인하려고 할 때 놀랍게도 왜 그런지 이해하지 못합니다. , Excel은 ** $ B $ 2 **에 대해 원래 설정 한 값 (** Table1 [Sales] **)을 바꿉니다. 즉, 해당 열의 첫 번째 셀 – eddy