tthxnz

tthxnz

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  12 随笔 :: 0 文章 :: 111 评论 :: 24660 阅读

示例地址      代码下载

其实很简单,就是用我上次说的那个使用c#打开word2007文档的的方法,用xslt格式化一下就可以了,不过,由于对ooxml格式不太了解,只分析了最简单的那几个标签,图片,表格等目前还不知道怎么格式化,有xslt高手可以指导一下,
代码如下,在在页面加多一个xml控件就可以了,嘿嘿,居然还能通过w3

 1static string savName = string.Empty;
 2
 3
 4protected void button1_Click(object sender, EventArgs e)
 5        {
 6
 7            if (FileUpload1.HasFile)
 8            {
 9                if (FileUpload1.PostedFile.ContentType == "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
10                {
11                    savName = Server.MapPath("/DocToDocx/" + FileUpload1.FileName);
12                    FileUpload1.SaveAs(savName);
13                    //有条件可以在服务器上安装office2007直接对2007以前的doc文档进行文档转换
14                    //ConvertToDocx();
15                    DispPlayOnWeb();
16                }

17                else
18                {
19                    Response.Write("对不起,只能上传office2007以docx为后缀的文件");
20                }

21            }

22        }

23
24        //void ConvertToDocx()
25        //{
26        //    object fileName = savName;
27        //    object missing = Type.Missing;
28        //    object isFalse = false;
29        //    object isTrue = true;
30        //    MSWord.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
31        //    wordApp.Visible = false;
32        //    MSWord.Document wordDocument = wordApp.Documents.Open(
33        //        ref fileName,//文件名称
34        //        ref isFalse,//如果文件有错误是否提示转换,我们在服务器运行,出现也看不到,就不用出现提示了
35        //        ref isFalse,//是否以只读形式打开,我们要对其转换,不能只读
36        //        ref isFalse,//是否增加到最精打开的文件
37        //        ref missing,
38        //        ref missing,
39        //        ref isFalse,
40        //        ref missing,
41        //        ref missing,
42        //        ref  missing,
43        //        ref missing,
44        //        ref isFalse,
45        //        ref isTrue,
46        //        ref missing,
47        //        ref isFalse,
48        //        ref missing
49        //        );
50
51        //    //直接使用其转换方法转换文档
52        //    wordDocument.Convert();
53
54        //    wordDocument.Save();
55
56        //    wordDocument.Close(ref missing, ref missing, ref missing);
57
58        //    wordApp.Quit(ref missing, ref missing, ref missing);
59        //    wordApp = null;
60        //}
61
62        void DispPlayOnWeb()
63        {
64            //string fileName = savName.Substring(0, savName.LastIndexOf('.')) + ".docx";
65            using (Package package = Package.Open(savName, FileMode.Open, FileAccess.Read))
66            {
67                Uri docxUri = new Uri("/word/document.xml", UriKind.Relative);
68                PackagePart docxPart = package.GetPart(docxUri);
69
70                XmlDocument docxXml = new XmlDocument();
71                docxXml.Load(docxPart.GetStream());
72
73                Xml1.Document = docxXml;
74
75                package.Close();
76
77                File.Delete(savName);
78            }

79
80
81        }

82
posted on   tthxnz  阅读(3445)  评论(11编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示