如何设置打开的xml文档的文本编码

时间:2011-11-07 14:12:39

标签: c# asp.net openxml openxml-sdk

如何设置打开的xml文档的文本编码?

在Office 2003中,当我打开通过Open XML构建的文档时,会出现有关编码的错误like that。如何设置编码或如何修复此错误?

我安装了兼容包,我可以打开每个.docx文件,但这个似乎需要设置编码。

我如何创建文档

private static void BuildDocument(string fileName, List<string> lista, string tipo)
        {     

            using (WordprocessingDocument w = WordprocessingDocument.Create(fileName, WordprocessingDocumentType.Document))
            {                
                MainDocumentPart mp = w.AddMainDocumentPart();
                DocumentFormat.OpenXml.Wordprocessing.Document d = new DocumentFormat.OpenXml.Wordprocessing.Document();
                Body b = new Body();                
                DocumentFormat.OpenXml.Wordprocessing.Paragraph p = new DocumentFormat.OpenXml.Wordprocessing.Paragraph();
                Run r = new Run();
                for (int i = 0; i < lista.Count; i++)
                {
                    Text t = new Text();
                    t.Text = lista[i];

                    if (t.Text == "          ")
                    {
                        r.Append(new CarriageReturn());
                    }
                    else
                    {                        
                        r.Append(t);
                        r.Append(new CarriageReturn());
                    }
                }

                lista.Clear();
                p.Append(r);
                b.Append(p);
                HeaderPart hp = mp.AddNewPart<HeaderPart>();
                string headerRelationshipID = mp.GetIdOfPart(hp);
                SectionProperties sectPr = new SectionProperties();
                HeaderReference headerReference = new HeaderReference();
                headerReference.Id = headerRelationshipID;
                headerReference.Type = HeaderFooterValues.Default;
                sectPr.Append(headerReference);
                b.Append(sectPr);
                d.Append(b);

                hp.Header.Save();
                mp.Document = d;
                mp.Document.Save();
                w.Close();
            }             
        }

1 个答案:

答案 0 :(得分:1)

Open XML仅适用于Office 2007及更早版本的文档。 Office 2003及以下版本与Open XML不兼容,这就是您获得此弹出窗口的原因。这不能通过Open XML控制,只有Word会在您打开不兼容的文档时提供弹出窗口。