c# word文档与二进制数据的相互转换

来源:互联网 发布:ubuntu服务器分区方案 编辑:程序博客网 时间:2024/05/18 13:24

 

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->        /// <summary>        /// 二进制数据转换为word文件        /// </summary>        /// <param name="data">二进制数据</param>        /// <param name="fileName">word文件名</param>        /// <returns>word保存的相对路径</returns>        public string ByteConvertWord(byte[] data, string fileName)        {            string savePath = @"\SystemWord\"+FormatNowTime(2)+@"\";            if (!System.IO.Directory.Exists(GetPath() + savePath))            {                Directory.CreateDirectory(GetPath() + savePath);            }            savePath += fileName + ".doc";            string filePath = GetPath() + savePath;            FileStream fs;            if (System.IO.File.Exists(filePath))            {                fs = new FileStream(filePath, FileMode.Truncate);            }            else            {                fs = new FileStream(filePath, FileMode.CreateNew);            }            BinaryWriter br = new BinaryWriter(fs);            br.Write(data, 0, data.Length);            br.Close();            fs.Close();            return savePath;        }        /// <summary>        /// word文件转换二进制数据(用于保存数据库)        /// </summary>        /// <param name="wordPath">word文件路径</param>        /// <returns>二进制</returns>        private byte[] wordConvertByte(string wordPath)        {            byte[] bytContent = null;            System.IO.FileStream fs = null;            System.IO.BinaryReader br = null;            try            {                fs = new FileStream(wordPath, System.IO.FileMode.Open);            }            catch            {            }            br = new BinaryReader((Stream)fs);            bytContent = br.ReadBytes((Int32)fs.Length);            return bytContent;        }        /// <summary>        /// 项目所在目录        /// </summary>        /// <returns></returns>        public string GetPath()        {            return Application.StartupPath;        }        /// <summary>        /// 格式化当前时间:         /// 1:yyMMddHHmmss; 2:yyyy-MM\dd\        /// </summary>        /// <returns></returns>        public string FormatNowTime(int num)        {            if (num == 1)            {                return DateTime.Now.ToString("yyMMddHHmmss");            }            else if (num == 2)            {                return DateTime.Now.ToString("yyyy-MM") + @"\" + DateTime.Now.Day;            }            return "";        }//测试方法 private void button1_Click(object sender, EventArgs e)        {            string newWord = ByteConvertWord(wordConvertByte(@"D:\测试文件.doc"), "测试成功");        }