zoukankan      html  css  js  c++  java
  • 用C#转换Word或Excel文档为Html文件

    这个是CodeProject上的一篇文章:Microsoft Interop API to convert the .doc, .docx, .dot, .dotx and .xls,.xlsx, .rtf to HTML。该文介绍了一种通过Microsoft office Interop library转换word或excel文档为html的方法,这里转录一下,以供更多需要的人参考。

    要使用Microsoft office Interop library库,首先得在电脑上安装Office,然后添加如下三个com组件的引用:

    • Microsoft Office Excel library.
    • Microsoft Office Word library
    • Microsoft Office object library

    作者编写了两个类DocToHtmlXlsToHtml用以转换Word和Excel文档,

        public static IConverter Converter(string fullFilePath, string fileToSave)
        {
            switch (Path.GetExtension(fullFilePath).ToLower())
            {
                case ".doc":
                case ".docx":
                case ".dot":
                case ".dotx":
                case ".rtf":
                    return new DocToHtml { FileToSave = fileToSave, FullFilePath = fullFilePath };
                case ".xls":
                case ".xlsx":
                    return new XlsToHtml { FileToSave = fileToSave, FullFilePath = fullFilePath };
                default:
                    throw new NotSupportedException();
            }
        }

    使用方法如下:

        static void Main(string[] args)
        {
            var converter = ConverterLocator.Converter(@"r:\1.xlsx", @"r:\1.html");
            var html = converter.Convert();
        }

    原文提供了代码的下载,使用了一下,觉得有两个问题:

    1. 该代码转换后会删除原始文件,并且也不会保留转换后的文件,仅仅返回string类型的html。

    转换后删除原始文件是不对的,并且string类型的html文件有并不能完全代表结果(很多时候还有一些图片或样式表之类的附加文件)。因此我把代码修改了一下,不删除原始文件和转换后的文件。

    2. 转换带图片的文档时会报异常

    分析了一下,转换带图片的文档后,会生成一个xxx.files的文件夹用以存放文档,但是作者的代码中是xxx_files文件夹(可能是操作系统或office的版本不一样所致),我这里改成了xxx.files后就不报异常了。

    修改后的代码下载地址如下:点击下载

  • 相关阅读:
    环形数组求最大子数组
    教学楼电梯调度需求分析
    结对编程实践扩展
    《梦断代码》读书笔记
    CS小分队第二阶段冲刺站立会议(5月30日)
    CS小分队第二阶段冲刺站立会议(5月29日)
    CS小分队第二阶段冲刺站立会议(5月28日)
    第一阶段冲刺个人总结
    CS小分队第二阶段冲刺站立会议(5月27日)
    CS小分队第二阶段冲刺站立会议(5月26日)
  • 原文地址:https://www.cnblogs.com/TianFang/p/2819207.html
Copyright © 2011-2022 走看看