word文档和二进制数据的转换及相关问题探讨

现在特别多项目和技术支持在线编辑word文档。有控件的和javascript操作的。这里简单的推荐一个在线编辑word文档的控件。

地址:http://www.dianju.cn/p/weboffice/

在这个控件中,word文档的编辑特别好用。但是这里面用到两个方法。word文档和数据库保存的二进制之间的转换问题。

现在将word文档和二进制数据之间相互转换的两个方法总结如下

复制代码

代码如下:

///

/// 将二进制数据转换为word文档

///

/// 二进制数据可以直接存放在sql server数据库中的数据

/// 文件名,即你要生成的word文档的名称。自己随便定义一个字符串就行

public void ByteConvertWord(byte[] data, string fileName)

{

string savePath = @"/Upload/"; //虚拟路径,项目中的虚拟路径。一般我们条用这个方法,肯定要把生成的word文档保存在项目的一个文件夹下,以备后续使用

string path = Server.MapPath(savePath); //把相应的虚拟路径转换成物理路径

if (!System.IO.Directory.Exists(path))

{

Directory.CreateDirectory(path);

}

savePath += fileName + DateTime.Now.ToString().Replace("-", "").Replace(" ", "").Replace(":", "") + Guid.NewGuid().ToString() + ".doc";

string filePath = Server.MapPath(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();

}

以下介绍word文档转换为二进制数据的方法。

复制代码

代码如下:

///

/// word文件转换二进制数据(用于保存数据库)

///

/// word文件路径

/// 二进制

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;

}

AI助手