다른 유사한 질문을 읽었으니 시작하겠습니다. 그러나 아래에 나와있는 해결책은 저에게 맞지 않습니다.OpenXml을 사용하여 워드 문서 (docx) 만들기
.NET 코어 및 OpenXMl (DocumentFormat.OpenXml 2.7.2 Nuget 패키지 사용)을 사용하여 워드 문서 (docx)를 만들려고합니다. 사소한 것처럼 보이지만 어떻게 든 작동하지 않습니다. 문서를 열려고하면 파일이 손상되거나 잘린 또는 잘못된 형식이라는 오류가 발생합니다. 여기
(나는 수많은 튜토리얼에서 그것을 발견) 내 코드입니다 : 이런 식으로 저장using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System.IO;
public Stream GetDocument()
{
var stream = new MemoryStream();
using (WordprocessingDocument doc = WordprocessingDocument.Create(stream, WordprocessingDocumentType.Document, true))
{
MainDocumentPart mainPart = doc.AddMainDocumentPart();
new Document(new Body()).Save(mainPart);
Body body = mainPart.Document.Body;
body.Append(new Paragraph(
new Run(
new Text("Hello World!"))));
mainPart.Document.Save();
}
stream.Seek(0, SeekOrigin.Begin);
return stream;
}
광고 :
이public static void Test()
{
DocxWriter writer = new DocxWriter();
string filepath = Directory.GetCurrentDirectory() + @"/test.docx";
var stream = writer.GetDocument();
using (var fileStream = new FileStream(filepath, FileMode.Create, FileAccess.Write))
{
stream.CopyTo(fileStream);
}
stream.Dispose();
}
편집 : 나는 DOCX를 추출 후 은 내가 찾을 수 기본 XML은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:t>Hello World!</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
.docx 파일을 여는 데 사용하는 사무실 버전은 무엇입니까? – Niladri
@Niladri 사실, 나는 맥없이 사무실을 열지 만 다른 docx 파일을 여는 데는 아무런 문제가 없다. 다른 사람들에게 창문에서 열어 보도록 요청했습니다. 비슷한 문제를 보여줍니다. 그래서 독자의 문제라고 생각하지 않습니다. – daneejela
방금이 작업이 정상적으로 작동하는지 확인했습니다. Win10에서 파일을 작성, 실행 및 생성했습니다. Word2016에서 파일이 열립니다. 지금까지 모든 것이 잘 작동하기 때문에 프로젝트에 대한 자세한 정보를 게시 할 수 있습니까? – Taterhead