워드 내보내기를 통합해야 하는 프로젝트인데 제가 할 당시에는 온라인 문서 리소스가 많지 않고 상당히 지저분해서 확인하고 정리하고 기록을 작성하고 NPOI가 운영하는 Word의 기본 작업도 공유했습니다. 도움이 필요한 친구와 문서.
이 글에는 Word 생성을 위한 기본 작업인 Word 텍스트 생성 작업, 표 작업, 그림 작업이 포함되어 있습니다.
다음은 개인적인 이해에 불과합니다. 더 좋은 아이디어가 있으면 언제든지 추가해 주세요.
VS2017, 솔루션을 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지를 관리하고 프로젝트에 대한 NPOI 패키지를 검색 및 설치하고 인용합니다.
NPOI 사용 ·
1 템플릿 가져오기(XWPFDocument 문서)
먼저 템플릿을 사용하세요. 템플릿을 가져온 다음 편집을 위해 얻은 템플릿을 NPOI 문서 개체로 인스턴스화합니다.
using (FileStream stream = File.OpenRead("Template file address ”)){
XWPFDocument 문서 = 새로운 XWPFDocument(스트림)
//문서 처리, 코드 제어 편집 문서.
}
doc 처리 후 새 파일을 생성해서 doc에 쓰면 단어 생성이 완료됩니다.
FileStream file = new FileStream(생성된 파일 경로 + 파일 이름, FileMode.Create, FileAccess.Write);
doc.Write(file);
file.Close();
doc는 우리가 얻은 템플릿의 모든 내용입니다.
또 다른 점은 이 편집기에서 사용하는 템플릿은 모두 docx 접미사 파일이라는 점입니다. doc를 수정하면 docx를 읽을 때 오류가 보고되며, doxc 문서로 저장해야 합니다.
2. 텍스트 처리(XWPFParagraph para) doc.Paragraphs 문서의 모든 단락 개체를 가져옵니다.
para.ParagraphText 단락의 텍스트 데이터를 가져옵니다(교체할 텍스트, 대체 텍스트). 단락의 텍스트 교체(템플릿의 핵심)XWPFParagraph의 공식 참조 문서
3. 테이블 처리(XWPFTable 테이블)
doc.Tables 문서의 모든 테이블 개체를 가져옵니다. more here , doc.Tables는 중첩된 내부 테이블을 포함하지 않고 Word에서 가장 바깥쪽 테이블만 가져옵니다.
중첩된 셀을 얻으려면 cell.Tables를 사용할 수 있습니다.(1) 테이블 행 처리(XWPFTableRow 행)
row.Rows 테이블의 모든 행 가져오기
(2) 테이블 셀 처리(XWPFTableCell 셀)
테이블 행의 모든 셀 가져오기
셀을 가져온 후 셀에서 텍스트 단락(단락)을 가져와 텍스트를 바꿀 수 있습니다.
(3) 행 셀을 가로로 병합
CT_Tc cttcofRowThird = cell.GetCTTc(); CT_TcPr ctProfRowThird = cttcofRowThird.AddNewTcPr(); ctProfRowThird.gridSpan = new CT_DecimalNumber(); ctProfRowThird.gridSpan.val = num.ToString();//合并num列
row.GetTableICells() ;
(4) 수직 병합 컬럼 셀
List<XWPFTableRow> rows所有要合并的行的XWPFTableRow对象集合。 XWPFTableCell cellFirstofThird = 第一行要合并的单元格对象; CT_Tc cttcFirstofThird = cellFirstofThird.GetCTTc(); CT_TcPr ctPrFirstofThird = cttcFirstofThird.AddNewTcPr(); ctPrFirstofThird.AddNewVMerge().val = ST_Merge.restart;//开始合并行 ctPrFirstofThird.AddNewVAlign().val = ST_VerticalJc.center;//垂直 cttcFirstofThird.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center; for (int i = 1; i < rows.Count; i++) { XWPFTableCell cellfirstofRow = 第i行要合并的单元格对象; CT_Tc cttcfirstofRow = cellfirstofRow.GetCTTc(); CT_TcPr ctPrfirstofRow = cttcfirstofRow.AddNewTcPr(); ctPrfirstofRow.AddNewVMerge().val = ST_Merge.@continue;//继续合并行 ctPrfirstofRow.AddNewVAlign().val = ST_VerticalJc.center;//垂直 }4. 이미지 처리
NPOI 버전 2.3.0의 이미지 삽입에는 xml 파일의 수정 사항이 통합되지 않아서 손글씨로 컴파일해야 합니다(물론 복사했습니다) ).
using (FileStream fsImg = new FileStream(图片路径, FileMode.Open, FileAccess.Read, FileShare.None)) { var picID = doc.AddPictureData(fsImg, (int)NPOI.XWPF.UserModel.PictureType.JPEG); string picXml = "" + " <pic:pic xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">" + " <pic:nvPicPr>" + " <pic:cNvPr id=\"" + "0" + "\" name=\"Generated\"/>" + " <pic:cNvPicPr/>" + " </pic:nvPicPr>" + " <pic:blipFill>" + " <a:blip r:embed=\"" + id + "\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"/>" + " <a:stretch>" + " <a:fillRect/>" + " </a:stretch>" + " </pic:blipFill>" + " <pic:spPr>" + " <a:xfrm>" + " <a:off x=\"0\" y=\"0\"/>" + " <a:ext cx=\"" + width + "\" cy=\"" + height + "\"/>" + " </a:xfrm>" + " <a:prstGeom prst=\"rect\">" + " <a:avLst/>" + " </a:prstGeom>" + " </pic:spPr>" + " </pic:pic>"; XWPFParagraph par = cell.AddParagraph();//创建段落对象(可以在doc加也可在cell加) par.Alignment = ParagraphAlignment.CENTER;//居中 XWPFRun run = par.CreateRun(); CT_Inline inline = run.GetCTR().AddNewDrawing().AddNewInline(); inline.graphic = new CT_GraphicalObject { graphicData = new CT_GraphicalObjectData { uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" } }; try { inline.graphic.graphicData.AddPicElement(picXml); } catch (XmlException xe) { throw xe; } NPOI.OpenXmlFormats.Dml.WordProcessing.CT_PositiveSize2D extent = inline.AddNewExtent(); extent.cx = width; extent.cy = height; NPOI.OpenXmlFormats.Dml.WordProcessing.CT_NonVisualDrawingProps docPr = inline.AddNewDocPr(); docPr.id = 1; docPr.name = "Image" + id; }오늘은 여기까지 하고 나중에 더 나오면 추가하겠습니다.
관련 권장 사항:
C/C++를 사용하여 PHP 확장 작성
위 내용은 C#은 NPOI를 사용하여 Word 문서를 생성합니다(템플릿에 따라).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

C# .NET 개발을 시작하려면 다음과 같은 것이 필요합니다. 1. C#의 기본 지식과 .NET 프레임 워크의 핵심 개념을 이해하십시오. 2. 변수, 데이터 유형, 제어 구조, 기능 및 클래스의 기본 개념을 마스터하십시오. 3. LINQ 및 비동기 프로그래밍과 같은 C#의 고급 기능을 배우십시오. 4. 일반적인 오류에 대한 디버깅 기술 및 성능 최적화 방법에 익숙해 지십시오. 이러한 단계를 통해 C#.NET의 세계를 점차적으로 침투하고 효율적인 응용 프로그램을 작성할 수 있습니다.

C#과 .NET의 관계는 분리 할 수 없지만 같은 것은 아닙니다. C#은 프로그래밍 언어이며 .NET은 개발 플랫폼입니다. C#은 코드를 작성하고 .NET의 중간 언어 (IL)로 컴파일하고 .NET 런타임 (CLR)에 의해 실행되는 데 사용됩니다.

C#.NET은 여러 응용 프로그램 개발을 지원하는 강력한 도구 및 라이브러리를 제공하기 때문에 여전히 중요합니다. 1) C#은 .NET 프레임 워크를 결합하여 개발 효율적이고 편리하게 만듭니다. 2) C#의 타입 안전 및 쓰레기 수집 메커니즘은 장점을 향상시킵니다. 3) .NET은 크로스 플랫폼 실행 환경과 풍부한 API를 제공하여 개발 유연성을 향상시킵니다.

C#.NETISVERSATILEFORBOTHWEBBANDDESKTOPDEVENTROMMENT.1) FORWEB, useASP.NETFORRICHINTERFACES.3) FORDESKTOP.3) USEXAMARINFORCROSS-PLATFORMDEEVENTRIMMENT, LINABILEDEV, MACODEDEV, and MACODEDOWS, 및 MACODEDOWS.

C# 및 .NET는 지속적인 업데이트 및 최적화를 통해 신흥 기술의 요구에 적응합니다. 1) C# 9.0 및 .NET5는 레코드 유형 및 성능 최적화를 소개합니다. 2) .NETCORE는 클라우드 네이티브 및 컨테이너화 된 지원을 향상시킵니다. 3) ASP.NETCORE는 최신 웹 기술과 통합됩니다. 4) ML.NET는 기계 학습 및 인공 지능을 지원합니다. 5) 비동기 프로그래밍 및 모범 사례는 성능을 향상시킵니다.

C#.netissuitable forenterprise-levelapplications는 richlibraries, androbustperformance, 그러나 itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical, wherelanguagesslikerustorthightordogrordogrognegrognegrognegrognecross-platformdevelopmentor.

.NET에서 C#의 프로그래밍 프로세스에는 다음 단계가 포함됩니다. 1) C# 코드 작성, 2) 중간 언어 (IL)로 컴파일하고 .NET 런타임 (CLR)에 의해 실행됩니다. .NET에서 C#의 장점은 현대적인 구문, 강력한 유형 시스템 및 .NET 프레임 워크와의 긴밀한 통합으로 데스크탑 응용 프로그램에서 웹 서비스에 이르기까지 다양한 개발 시나리오에 적합합니다.

C#은 Microsoft가 개발 한 최신 객체 지향 프로그래밍 언어이며 .NET 프레임 워크의 일부로 개발되었습니다. 1.C#은 캡슐화, 상속 및 다형성을 포함한 객체 지향 프로그래밍 (OOP)을 지원합니다. 2. C#의 비동기 프로그래밍은 응용 프로그램 응답 성을 향상시키기 위해 비동기 및 키워드를 기다리는 키워드를 통해 구현됩니다. 3. LINQ를 사용하여 데이터 컬렉션을 간결하게 처리하십시오. 4. 일반적인 오류에는 NULL 참조 예외 및 인덱스 외 예외가 포함됩니다. 디버깅 기술에는 디버거 사용 및 예외 처리가 포함됩니다. 5. 성능 최적화에는 StringBuilder 사용 및 불필요한 포장 및 Unboxing을 피하는 것이 포함됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
