我们在做一些系统的 下载模块 或者 内部邮箱 的时候,有些使用系统的人可能并没有安装office,但是又急需查看附件的内容甚至图片等等,下载安装一个Office又不大现实(时间要求紧?在某个网吧?在朋友家里?),那么如何查看一些常用的附件呢?
其实QQ邮箱有个功能很好,它可以以 HTML方式查看 Office文件,例如Word文档、Excel表格已经PowerPoint幻灯片等,这个功能有很多实现的办法,例如使用SPS就是办法之一,但是其实大部分时候,我们用不到SPS,或者由于正版软件太贵了,那如何使用ASP.NET 2.0(C#)来实现这个功能?
注意:以下代码在vs2008,office2007,windowsxp下测试通过,项目需要添加Excel 12、Word12、PowerPoint12、Office12 四个com引用
///<summary>
///将PPT文件转换成HTML格式
///</summary>
///<paramname="PptFilePath">PPT文件路径</param>
publicstaticvoidPptToHtmlFile(stringPptFilePath)
{
Microsoft.Office.Interop.PowerPoint.Applicationppt=newMicrosoft.Office.Interop.PowerPoint.Application();
Microsoft.Office.Interop.PowerPoint.PresentationpptFile=null;
try
{
//获得html文件名
stringhtmlFileName=PptFilePath.Substring(0,PptFilePath.LastIndexOf("."))+".html";
//打开一个ppt文件
pptFile=ppt.Presentations.Open(PptFilePath,Microsoft.Office.Core.MsoTriState.msoTrue,
Microsoft.Office.Core.MsoTriState.msoCTrue,Microsoft.Office.Core.MsoTriState.msoFalse);
//转换成html格式
pptFile.SaveAs(htmlFileName,Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsHTML,
Microsoft.Office.Core.MsoTriState.msoCTrue);
}
finally
{
if(pptFile!=null)
{
pptFile.Close();
}
ppt.Quit();
GC.Collect();
}
}
///<summary>
///将Excel文件转换成HTML格式
///</summary>
///<paramname="ExcelFilePath">Excel文件路径</param>
publicstaticvoidExcelToHtmlFile(stringExcelFilePath)
{
Microsoft.Office.Interop.Excel.ApplicationexcelApp=newMicrosoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.WorkbookoBook=null;
//缺省参数
objectUnknown=Type.Missing;
try
{
//目标html文件路径
objectTarget=ExcelFilePath.Substring(0,ExcelFilePath.LastIndexOf("."))+".html";
//为了保险,只读方式打开
objectreadOnly=true;
//指定另存为格式(html)
objectformat=Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;
//打开Excel文件
oBook=excelApp.Workbooks.Open(ExcelFilePath,Unknown,readOnly,
Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,
Unknown,Unknown,Unknown,Unknown,Unknown,Unknown);
//转换格式
oBook.SaveAs(Target,format,Unknown,Unknown,Unknown,Unknown,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Unknown,Unknown,Unknown,Unknown,Unknown);
}
finally
{
if(oBook!=null)
{
oBook.Close(false,Unknown,Unknown);
}
excelApp.Quit();
GC.Collect();
}
}
///<summary>
///将Word文档转换成HTML格式
///</summary>
///<paramname="WordFilePath">Word文档格式</param>
publicstaticvoidWordToHtmlFile(stringWordFilePath)
{
Microsoft.Office.Interop.Word.ApplicationnewApp=newMicrosoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Documentdoc=null;
//缺省参数
objectUnknown=Type.Missing;
try
{
//指定原文件和目标文件
objectSource=WordFilePath;
objectTarget=WordFilePath.Substring(0,WordFilePath.LastIndexOf("."))+".html";
//为了保险,只读方式打开
objectreadOnly=true;
//指定另存为格式(html)
objectformat=Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML;
//打开doc文件
doc=newApp.Documents.Open(refSource,refUnknown,refreadOnly,
refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,
refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown);
//转换格式
doc.SaveAs(refTarget,refformat,
refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,
refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown);
}
finally
{
if(doc!=null)
{
//关闭文档和Word程序
doc.Close(refUnknown,refUnknown,refUnknown);
}
newApp.Quit(refUnknown,refUnknown,refUnknown);
GC.Collect();
}
}
有了这三个方法,我们可以在上传文件时将对应的office文件转成html的文件,跟office文件放在同一个目录中,同时加一个对应的链接“HTML方式查看”即可。
如果是第二期添加这个功能,那可以在获得文件列表的时候,先取得文件的扩展名,然后再查看有没有对应的HTML文件,如果没有,则即时生成一个,很方便,不过如果量很大的话,转换的速度会比较慢,最好是写一个winform的程序遍历整个目录,先把html文件生成一遍,这样再打开就会很快了。
简单的写一个如下:
///<summary>
///生成文件对应的HTML版本(没有考虑HTML文件已经存在的处理)
///</summary>
///<paramname="fileFullName">文件路径</param>
///<returns>如果生成了对应的HTML文件,返回true,如果不需要生成HTML文件,返回flase</returns>
publicstaticboolConvertFileToHtml(stringfileFullName)
{
System.IO.FileInfofile=newSystem.IO.FileInfo(fileFullName);
if(file.Exists)
{
stringstrExt=file.Extension.Substring(1).ToLower();
switch(strExt)
{
case"doc":
case"docx":
WordToHtmlFile(fileFullName);
returntrue;
case"xls":
case"xlsx":
ExcelToHtmlFile(fileFullName);
returntrue;
case"ppt":
case"pptx":
PptToHtmlFile(fileFullName);
returntrue;
default:
returnfalse;
}
}
returnfalse;
}
这样就OK了
分享到:
相关推荐
下面我们将深入探讨多文件上传的原理、实现方式以及与QQ邮箱类似的功能特性。 多文件上传的实现主要基于HTML5中的File API和Ajax技术。File API允许浏览器直接读取用户选择的本地文件,而Ajax则可以实现异步数据...
这个主题“多文件上传,模仿QQ邮箱”旨在为初学者提供一个学习的实例,让他们了解如何实现类似QQ邮箱的文件上传功能。QQ邮箱作为中国流行的电子邮件服务之一,其文件上传体验已经非常成熟,包括了批量选择、进度显示...
完成类似QQ邮箱中‘HTML方式查看’功能查看Office文件。 我们在做一些系统的 下载模块 或者 内部邮箱 的时候,有些使用系统的人可能并没有安装office,但是又急需查看附件的内容甚至图片等等,下载安装一个Office...
QQ邮箱图片显示代码是电子邮件发送过程中一个重要的技术环节,它涉及到如何在邮件中嵌入图片,使得接收者能够正常查看而不会看到“叉叉”或被提示为外站链接。通常,邮件系统出于安全考虑会阻止外部图片的直接显示,...
总而言之,QQ邮箱的文件中转站功能为用户提供了前所未有的大文件传输体验,它的便捷操作、安全机制以及广泛的应用场景,都使得它成为网络交流中不可或缺的工具。随着网络技术的不断进步,文件中转站的性能和功能也将...
QQ邮箱-Mail是一个基于互联网的电子邮箱服务,由腾讯公司提供,是其众多产品线中的一员。这个“LoveMail”项目可能是一个针对QQ邮箱的定制化或优化开发版本,旨在提升用户体验或者实现特定功能。在深入探讨相关知识...
标题提及的"网页HTML编辑器类似QQ空间 163邮箱编辑器"可能是指这些编辑器提供了类似于QQ空间和163邮箱内嵌的富文本编辑功能。 QQ空间和163邮箱都是中国知名的在线服务平台,它们的编辑器允许用户方便地编辑和格式化...
在IT行业中,实现类似QQ文件传输进度条的功能是一项常见的需求,尤其在开发文件传输软件或者增强用户界面体验时。这个功能通常涉及到多线程技术、定时器(Timmer)的使用以及界面动态更新。以下是对这些知识点的详细...
开发者可能参考了QQ邮箱的布局和交互设计,尝试在自己的项目中复现这些特性,提供类似的用户体验。 项目文件列表中的"QQmail"可能是整个项目代码的根目录,其中包含了所有相关的源码文件、配置文件、资源文件等。...
QQ邮箱HTML编辑器是腾讯QQ邮箱提供的一种工具,允许用户在编写邮件时使用HTML语言来增强邮件内容的表现力。HTML编辑器通常具有丰富的文本格式化选项,如字体、字号、颜色、对齐方式等,还可能包括插入图片、链接、...
5. **QQ邮箱特定实现**:qqMailEditor.rar系列文件可能是QQ邮箱官方提供的编辑器源码,可能包含QQ邮箱特有的接口调用和样式设定,用于与QQ邮箱的后端服务进行通信,如上传图片、保存草稿、发送邮件等。 6. **...
这段代码是实现一个类似QQ邮箱的JavaScript附件上传功能的示例。主要知识点包括: 1. **JavaScript事件处理**: - `onchange` 事件:当用户在`<input type="file">`元素中选择了一个文件后触发。在这个例子中,`...
标题中的“仿QQ邮箱模版,整套的.asp”指的是一个基于ASP(Active Server Pages)技术的网页模板,它设计风格模仿了QQ邮箱的界面,为用户提供了一个类似于QQ邮箱的用户体验。这种模板对于那些希望快速搭建邮件服务...
【标题】"仿QQ邮箱ASP系统"所涉及的知识点主要集中在使用ASP(Active Server Pages)技术构建一个类似于QQ邮箱的Web应用系统。ASP是微软开发的一种服务器端脚本环境,用于生成动态网页,它允许开发者在HTML代码中...
3. **统一管理多个邮箱**:如果您同时管理着多个不同的企业邮箱,通过QQ邮箱的绑定功能可以将它们统一在一个平台上进行管理,便于查看和分类。 ### 总结 通过上述步骤,您可以轻松地将QQ账号与企业邮箱绑定在一起...
通过以上步骤,我们可以创建一个类似QQ邮箱的收件人添加界面,提供便捷的输入、自动补全和格式验证功能。这个过程需要对HTML、CSS和JavaScript有深入理解,同时也需要关注用户交互设计,以确保最终产品的易用性。...
在“qqEmail”这个压缩包中,你应该能找到HTML文件和CSS文件,通过查看和分析这些文件,你可以看到这些概念是如何在实际项目中应用的。你可以尝试修改代码,观察不同的样式改变如何影响界面。这将加深你对HTML和CSS...
QQ邮箱在线文本编辑器是一款专为QQ邮箱设计的富文本编辑工具,允许用户在编写邮件时享受到更加便捷和丰富的编辑体验。它提供了ASP和PHP两种版本,以适应不同服务器环境的需求。这款编辑器的主要功能是增强邮件正文的...
仿QQ邮箱的应用需要创建类似的设计,包括登录页面、邮件列表、邮件详情页、附件查看和下载等。使用XML文件定义布局,结合Java或Kotlin代码进行动态操作。 4. **网络通信**: 发送和接收邮件需要用到HTTP/HTTPS...
7. **软件发布与打包**:压缩包中的`QQ邮件生成器.exe`是已编译的可执行文件,表明开发者已经完成了程序的编译和打包过程。在C#中,这通常通过Visual Studio等IDE完成,生成的.exe文件可以直接在Windows操作系统上...