c office 转html,Office转HTML

///

/// word转成html

///

///

public static string WordToHtml(string path)

{

//在此处放置用户代码以初始化页面

Word.Application word = new Word.Application();

Type wordType = word.GetType();

Word.Documents docs = word.Documents;

Type docsType = docs.GetType();

try

{

Word.Document doc =(Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs,new Object[] {path, true, true});

//转换格式,另存为

Type docType = doc.GetType();

string strSaveFileName = path.Substring(, path.LastIndexOf('.')) + ".html";

object saveFileName = (object) strSaveFileName;

docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc,

new object[] {saveFileName, Word.WdSaveFormat.wdFormatHTML});

docType.InvokeMember("Close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null);

return saveFileName.ToString();

}

catch

{

throw new Exception("文件转换出错");

}

finally

{

//退出 Word

wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);

GC.Collect();

GC.WaitForPendingFinalizers();

}

}

///

/// word转成html带分页

///

///

///

public static ResultDTO WordToHtmls(string path, string id)

{

FileInfo f = new FileInfo(path);

if (!f.Exists)

return null;

var basePath = path.Substring(,path.IndexOf("DownLoads", StringComparison.Ordinal));

//转换文件根路径

string root = basePath + "DownLoads/Html/";

if (!Directory.Exists(@root + id))

{

Directory.CreateDirectory(@root + id);

}

Word.Document doc = null;

var pages = "";

Word.Application word = new Word.Application();

Type wordType = word.GetType();

Word.Documents docs = word.Documents;

Type docsType = docs.GetType();

try

{

object oMissing = System.Reflection.Missing.Value;

doc =(Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs,new Object[] {path, true, true});

bool flag = true;

int index = ;

do

{

object objWhat = Word.WdGoToItem.wdGoToPage;

object objWhich = Word.WdGoToDirection.wdGoToAbsolute;

object objPage = index;

Word.Range range1 = doc.GoTo(ref objWhat, ref objWhich, ref objPage, ref oMissing);

Word.Range range2 = range1.GoToNext(Word.WdGoToItem.wdGoToPage);

object objStart = range1.Start;

object objEnd = range2.Start;

if (range1.Start == range2.Start)

{

objEnd = range2.StoryLength;

flag = false;

}

doc.Range(ref objStart, ref objEnd).Copy();

Word.ApplicationClass wordapp = new Word.ApplicationClass();

Word.Document doc2 = wordapp.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

Word.Paragraph para = doc2.Content.Paragraphs.Add(ref oMissing);

para.Range.Paste();

var pagepath = id + "/" + index + ".html";

doc2.GetType().InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc2,

new object[] {root + pagepath, Word.WdSaveFormat.wdFormatHTML});

wordapp.GetType().InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, wordapp, null);

pages += pagepath + ",";

index++;

} while (flag);

object saveOption = Word.WdSaveOptions.wdDoNotSaveChanges;

doc.Close(ref saveOption, ref oMissing, ref oMissing);

return new ResultDTO

{

status = true,

info = pages.Substring(, pages.Length - )

};

}

catch (Exception e)

{

log.Error(e.Message);

return new ResultDTO

{

status = false,

info = e.Message

};

}

finally

{

wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);

GC.Collect();

GC.WaitForPendingFinalizers();

}

}

///

/// Excel转成html

///

///

///

public static ResultDTO ExcelToHtml(string path,string id)

{

FileInfo f = new FileInfo(path);

if (!f.Exists)

return null;

var basePath = path.Substring(, path.IndexOf("DownLoads", StringComparison.Ordinal));

//转换文件根路径

string root = basePath + "DownLoads/Html/";

if (!Directory.Exists(@root + id))

{

Directory.CreateDirectory(@root + id);

}

Excel.Application repExcel = new Excel.Application();//实例化Excel

Excel.Workbook workbook = null;

try

{

workbook = repExcel.Application.Workbooks.Open(path, Type.Missing, Type.Missing, Type.Missing,

Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,

Type.Missing, Type.Missing, Type.Missing, Type.Missing);

object htmlFile =id + "/" + id + ".html";

object ofmt = Excel.XlFileFormat.xlHtml;

workbook.SaveAs(root + htmlFile, ofmt, Type.Missing, Type.Missing, Type.Missing, Type.Missing,

Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing,

Type.Missing); // 进行另存为操作

return new ResultDTO

{

status = true,

info = htmlFile.ToString()

};

}

catch(Exception e)

{

log.Error(e.Message);

return new ResultDTO

{

status = false,

info = e.Message

};

}

finally

{

if (workbook != null)

{

workbook.Close(true, Type.Missing, Type.Missing);

}

repExcel.Quit();

GC.Collect();

GC.WaitForPendingFinalizers();

GC.Collect();

GC.WaitForPendingFinalizers();

}

}

}

///

/// 输出结果

///

public class ResultDTO

{

public bool status; //状态

public string info; //详情

}

注:此处获取文档页数不可用以下方法获取,因为它表示的页数是指页面视图的页大小,并不是页面视图的页大小。

Word.WdStatistic stat = Word.WdStatistic.wdStatisticPages;

file_pages = doc.ComputeStatistics(stat, ref missing);

.NET Core 首例 Office 开源跨平台组件(NPOI Core)

前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...

[.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office

打造一个很简单的文档转换器 - 使用组件 Spire.Office [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6024827.html 序 之前,& ...

高效而稳定的企业级.NET Office 组件Spire(.NET组件介绍之二)

在项目开发中,尤其是企业的业务系统中,对文档的操作是非常多的,有时几乎给人一种错觉的是”这个系统似乎就是专门操作文档的“.毕竟现在的很多办公中大都是在PC端操作文档等软件,在这些庞大而繁重的业务中,单 ...

在禅道中实现WORD等OFFICE文档转换为PDF进行在线浏览

条件: 安装好禅道的服务器 能直接浏览PDF的浏览器(或通过 安装插件实现 ) 文档转换服务程序(建议部署在另一台服务器上)     实现 原理: 修改禅道的文件预览功能(OFFICE文档其使用的是下 ...

RMS:Microsoft Office检测到您的信息权限管理配置有问题。有关详细信息,请与管理员联系。(转)

原文:https://zhidao.baidu.com/question/435088233.html RMS有两种方式: 1.使用微软的服务器,这个是连接到微软的服务器上面做权限控制,在今年5月份之 ...

C#将Word转换成PDF方法总结(基于Office和WPS两种方案)

有时候,我们需要在线上预览word文档,当然我们可以用NPOI抽出Word中的文字和表格,然后显示到网页上面,但是这样会丢失掉Word中原有的格式和图片.一个比较好的办法就是将word转换成pdf,然 ...

解决NTKO Office中文文件名保存到服务器时出现乱码的问题

再使用NTKO office控件时,在ntko往服务器提交文件时,中文文件名会出现乱码的问题! 其实解决这个问题可以换一种思路,在ntko往服务器提交文件时英文肯定是不会出现乱码的问题的! 那么想办法 ...

office 2010 word每次启动都需要配置

解决方式: 进入cmd,运行以下命令即可,如果提示已存在,选择Y覆盖就行了 reg add HKCU\Software\Microsoft\Office\14.0\Word\Options /v No ...

非域客户端的office使用RMS加密服务出现‘介绍“信息权限管理服务”’服务的提示

环境:office2007,需要使用windows RMS服务,客户机处于工作组模式,如图: 出现这个说明客户机没有发现RMS服务,可以通过导入注册表解决,如下: Windows Registry E ...

随机推荐

JMeter--一、安装JMeter

Apache JMeter是Apache组织开发的基于Java的接口和性能测试工具. 作用: 1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC). ...

NetSuite SuiteScript 2.0 export data to Excel file(xls)

In NetSuite SuiteScript, We usually do/implement export data to CSV, that's straight forward: Collec ...

IOS 如何隐藏tabbar

系统自带的UITabBarController有时候到不到要求,需要自定义样式. 有一种方法就是在TabBar上面在放一层自己的,正好把原来的遮住. 那么,从Tab进入子的Controller想要隐藏 ...

在VS中使用TinyFox调试OWIN应用(转)

在很早一段时间之前,我曾经写过一篇关于Katana的使用方法的文章,上面就有介绍如何在VS中调试使用Katana作为Host的App ...

css position 相对定位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值