word文檔和二進(jìn)制數(shù)據(jù)的轉(zhuǎn)換及相關(guān)問(wèn)題探討
發(fā)布時(shí)間:2013-01-31 14:50:31 作者:佚名
我要評(píng)論

現(xiàn)在很多項(xiàng)目和技術(shù)支持在線編輯word文檔,接下來(lái)介紹將word文檔和二進(jìn)制數(shù)據(jù)之間相互轉(zhuǎn)換的兩個(gè)方法總結(jié)如下,感興趣的朋友可以了解下啊,或許對(duì)你有所幫助
現(xiàn)在很多項(xiàng)目和技術(shù)支持在線編輯word文檔。有控件的和javascript操作的。這里簡(jiǎn)單的推薦一個(gè)在線編輯word文檔的控件。
地址:http://www.dianju.cn/p/weboffice/
在這個(gè)控件中,word文檔的編輯很好用。但是這里面用到兩個(gè)方法。word文檔和數(shù)據(jù)庫(kù)保存的二進(jìn)制之間的轉(zhuǎn)換問(wèn)題。
現(xiàn)在將word文檔和二進(jìn)制數(shù)據(jù)之間相互轉(zhuǎn)換的兩個(gè)方法總結(jié)如下
/// <summary>
/// 將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為word文檔
/// </summary>
/// <param name="data">二進(jìn)制數(shù)據(jù)可以直接存放在sql server數(shù)據(jù)庫(kù)中的數(shù)據(jù)</param>
/// <param name="fileName">文件名,即你要生成的word文檔的名稱。自己隨便定義一個(gè)字符串就行</param>
public void ByteConvertWord(byte[] data, string fileName)
{
string savePath = @"/Upload/"; //虛擬路徑,項(xiàng)目中的虛擬路徑。一般我們條用這個(gè)方法,肯定要把生成的word文檔保存在項(xiàng)目的一個(gè)文件夾下,以備后續(xù)使用
string path = Server.MapPath(savePath); //把相應(yīng)的虛擬路徑轉(zhuǎn)換成物理路徑
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文檔轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)的方法。
/// <summary>
/// word文件轉(zhuǎn)換二進(jìn)制數(shù)據(jù)(用于保存數(shù)據(jù)庫(kù))
/// </summary>
/// <param name="wordPath">word文件路徑</param>
/// <returns>二進(jìn)制</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;
}
地址:http://www.dianju.cn/p/weboffice/
在這個(gè)控件中,word文檔的編輯很好用。但是這里面用到兩個(gè)方法。word文檔和數(shù)據(jù)庫(kù)保存的二進(jìn)制之間的轉(zhuǎn)換問(wèn)題。
現(xiàn)在將word文檔和二進(jìn)制數(shù)據(jù)之間相互轉(zhuǎn)換的兩個(gè)方法總結(jié)如下
復(fù)制代碼
代碼如下:/// <summary>
/// 將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為word文檔
/// </summary>
/// <param name="data">二進(jìn)制數(shù)據(jù)可以直接存放在sql server數(shù)據(jù)庫(kù)中的數(shù)據(jù)</param>
/// <param name="fileName">文件名,即你要生成的word文檔的名稱。自己隨便定義一個(gè)字符串就行</param>
public void ByteConvertWord(byte[] data, string fileName)
{
string savePath = @"/Upload/"; //虛擬路徑,項(xiàng)目中的虛擬路徑。一般我們條用這個(gè)方法,肯定要把生成的word文檔保存在項(xiàng)目的一個(gè)文件夾下,以備后續(xù)使用
string path = Server.MapPath(savePath); //把相應(yīng)的虛擬路徑轉(zhuǎn)換成物理路徑
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文檔轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)的方法。
復(fù)制代碼
代碼如下:/// <summary>
/// word文件轉(zhuǎn)換二進(jìn)制數(shù)據(jù)(用于保存數(shù)據(jù)庫(kù))
/// </summary>
/// <param name="wordPath">word文件路徑</param>
/// <returns>二進(jìn)制</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;
}
相關(guān)文章
word怎么單獨(dú)導(dǎo)出一頁(yè)? word導(dǎo)出部分頁(yè)的技巧
在編輯Word文檔時(shí),有時(shí)我們只需要導(dǎo)出其中的部分頁(yè)面,而不是整個(gè)文檔,下面將介紹如何在Word中導(dǎo)出部分頁(yè)面2025-04-14問(wèn)卷星怎么轉(zhuǎn)換成word文檔? 問(wèn)卷星問(wèn)卷調(diào)查導(dǎo)出成word的技巧
在日常工作中,我們經(jīng)常需要將問(wèn)卷星上的問(wèn)卷內(nèi)容導(dǎo)出為Word格式,以便整理和分析數(shù)據(jù),以下是三種簡(jiǎn)單的操作方法2025-04-14word文檔一整頁(yè)怎么截屏? word文檔截圖截一張全的圖片技巧
在Word文檔中想將一整頁(yè)截屏下來(lái),可以通過(guò)使用鍵盤中的Print Screen鍵和Word自帶的截屏功能等多種方法截圖,詳細(xì)如下2025-04-14word開發(fā)工具怎么調(diào)出來(lái)? word工具欄添加開發(fā)工具的教程
許多用戶在使用Word時(shí),可能會(huì)發(fā)現(xiàn)菜單欄中缺少了“開發(fā)者工具”這一重要選項(xiàng),這無(wú)疑限制了Word的某些高級(jí)功能應(yīng)用,詳細(xì)請(qǐng)看下文介紹2025-04-14Word文本框中的數(shù)字和英文字母如何進(jìn)行豎排? word文檔排版技巧
用Word進(jìn)行排版成為我們辦公中的主要方式,偶爾我們也可能會(huì)讓文字豎著排版,讓文字豎著排版我們都知道怎么操作,但是如何讓英文字母和數(shù)字也縱向顯示呢?詳細(xì)請(qǐng)看下文介紹2025-03-25word文本框怎么對(duì)齊? word多個(gè)文本框快速批量對(duì)齊的技巧
word中有很多文本框,排列很亂,想要將所有文本框?qū)R,該怎么操作呢?下面我們就來(lái)看看詳細(xì)的教程2025-03-21word分欄后如何設(shè)置頁(yè)碼? Word同一頁(yè)分欄后的文本分別設(shè)置頁(yè)碼技巧
在使用Word進(jìn)行文檔排版時(shí),經(jīng)常需要將文檔分欄,并且希望每欄都有不同的頁(yè)碼,這種效果在Word默認(rèn)的頁(yè)碼樣式中并不存在,需要通過(guò)手動(dòng)插入域來(lái)實(shí)現(xiàn),以下是詳細(xì)步驟2025-03-13word多級(jí)列表怎么修改編號(hào)? Word多級(jí)列表各級(jí)編號(hào)格式批量修改技巧
編輯Word長(zhǎng)文檔時(shí),為了讓文本之間具有層次性,編號(hào)的使用必不可少,那么,對(duì)于編號(hào),你會(huì)使用了嗎?詳細(xì)如下2025-03-13Word頁(yè)面版式設(shè)置:Word創(chuàng)建多級(jí)列表常見問(wèn)題解決辦法
你是否在設(shè)置多級(jí)列表時(shí)遇到了編號(hào)問(wèn)題?今天來(lái)分享創(chuàng)建多級(jí)列表的常見問(wèn)題,別擔(dān)心,這里為你提供全面的解決方案2025-03-13word文檔怎么鎖定排版? 輕松鎖定你的精心布局防止排版錯(cuò)亂
在 Word 文檔中鎖定排版,防止他人隨意更改格式,可嘗試以下兩種方法,輕松鎖定你的精心布局,詳細(xì)如下文所屬2025-03-11