C#에서 Word 작업(9) - Word에 차트를 삽입하는 세 가지 방법 (2)
메서드 2: Excel에서 차트 복사 이런 방법은 네가 이 제목을 통해 알게 될 것이라고 믿는다.우리의 사고방식은 Excel에서 이 도표를 만들고 복사한word에서 하는 것이다.
2.1 Excel 라이브러리 도입
먼저 프로젝트에 Excel 관련 참조를 도입해야 합니다. 아래 그림과 같이 "인용 추가"대화상자에서 Excel을 선택한 대상 라이브러리를 선택한 다음 확인을 누르십시오.
추가가 끝난 후에 우리가 해야 할 일은 실용적인 using 키워드로 Microsoft를 사용하는 것이다.Office.Interop.Excel 네임스페이스의 별명 Excel:using Excel = Microsoft.Office.Interop.Excel;
2.2 Excel에서 차트 생성
다음은 Excel 프로세스를 시작하고 첫 번째 sheet에 2행 4열의 표를 추가하고 데이터를 추가합니다.Excel.Application eApp = new Excel.Application();// Excel
eApp.Visible = true;// Excel
Excel.Workbook book=eApp.Workbooks.Add();// workboo
Excel.Worksheet sheet = eApp.Worksheets[1];// Worksheet
Excel.Range range = sheet.get_Range("A1", "D2");// A1 D2 Range
//
range.Cells[1][1] = " ";
range.Cells[1][2] = " ";
range.Cells[2][1] = " ";
range.Cells[2][2] = "89";
range.Cells[3][1] = " ";
range.Cells[3][2] = "100";
range.Cells[4][1] = " ";
range.Cells[4][2] = "95";
만약 순조롭다면, 우리는 아래와 같은 Excel 데이터를 얻어야 한다.
그런 다음 B1에서 D2까지의 범위를 가져와 차트를 삽입합니다.// À
Excel.Chart xlChart = book.Charts.Add();
//
xlChart.SetSourceData(range);
, word 。
//
Word.Range wdRange = bk.Range;
range.Copy();
wdRange.Paste();
//
wdRange.SetRange(wdRange.End, wdRange.End + 1);
xlChart.ChartArea.Copy();
wdRange.Paste();
만약 의외의 일이 발생하지 않는다면, 우리는 표와 도표를 삽입하는 데 성공했다.
방법2는 기본적으로 모든 버전의 오피스에 적용된다. 다음에 우리가 소개한 방법 세 가지는 오피스 2010 이상의 버전에 적용된다.
메서드 3: InlineShapes의 AddChart 메서드를 사용하여 차트 삽입 우리는 여기에서 방법 3에 대한 간단한 소개일 뿐이다. 필자의 오피스 버전은 2007 버전이기 때문에 2010 버전 이상을 다시 설치하고 싶지 않다.office 2010 이후 Inline Shape는 차트의 속성을 추가했습니다. 바로 우리가 추가한 차트입니다. 우리는 Inline Shapes의 Add Chart () 를 이용하여 차트를 추가할 수 있습니다. 이 함수의 반환 값은 바로 이chart가 있는 Inline Shape입니다. 그리고 Inline Shape의 차트 속성을 통해 이chart를 가져옵니다. 그러면 우리는 차트에 대해 데이터나 형식을 설정하는 작업을 할 수 있습니다. 자세한 방법은 아래 코드의 설명을 보십시오.Word.Selection sel = app.Selection;
Word.InlineShape shape = sel.InlineShapes.AddChart();//
Word.Chart wdChart = shape.Chart;//
Word.ChartData chartData = wdChart.ChartData;//
Excel.Workbook dataWorkbook = (Excel.Workbook)chartData.Workbook;// workbook
dataWorkbook.Application.Visible = false;
Excel.Worksheet dataSheet = (Excel.Worksheet)dataWorkbook.Worksheets[1]; // | sheet
Github 위치:
https://github.com/HymanLiuTS/OfficeTestByC-
이 항목 복제:
git clone [email protected]:HymanLiuTS/OfficeTestByC-.git
원본 코드를 가져오려면:
git checkout L08_이
using Excel = Microsoft.Office.Interop.Excel;
Excel.Application eApp = new Excel.Application();// Excel
eApp.Visible = true;// Excel
Excel.Workbook book=eApp.Workbooks.Add();// workboo
Excel.Worksheet sheet = eApp.Worksheets[1];// Worksheet
Excel.Range range = sheet.get_Range("A1", "D2");// A1 D2 Range
//
range.Cells[1][1] = " ";
range.Cells[1][2] = " ";
range.Cells[2][1] = " ";
range.Cells[2][2] = "89";
range.Cells[3][1] = " ";
range.Cells[3][2] = "100";
range.Cells[4][1] = " ";
range.Cells[4][2] = "95";
// À
Excel.Chart xlChart = book.Charts.Add();
//
xlChart.SetSourceData(range);
, word 。
//
Word.Range wdRange = bk.Range;
range.Copy();
wdRange.Paste();
//
wdRange.SetRange(wdRange.End, wdRange.End + 1);
xlChart.ChartArea.Copy();
wdRange.Paste();
Word.Selection sel = app.Selection;
Word.InlineShape shape = sel.InlineShapes.AddChart();//
Word.Chart wdChart = shape.Chart;//
Word.ChartData chartData = wdChart.ChartData;//
Excel.Workbook dataWorkbook = (Excel.Workbook)chartData.Workbook;// workbook
dataWorkbook.Application.Visible = false;
Excel.Worksheet dataSheet = (Excel.Worksheet)dataWorkbook.Worksheets[1]; // | sheet
Github 위치:
https://github.com/HymanLiuTS/OfficeTestByC-
이 항목 복제:
git clone [email protected]:HymanLiuTS/OfficeTestByC-.git
원본 코드를 가져오려면:
git checkout L08_이