您的位置:首页 > 编程语言 > C#

比较简单的将数据信息导入wrod文档方案(C# for word)

2010-01-15 00:00 537 查看
/// <summary> 
/// 设置Word模板,word表格样式在此设置 
/// </summary> 
/// <param name="dsTr"></param> 
/// <returns></returns> 
protected string SetWordTemplate(string dsTr) 
{ 
StringBuilder html = new StringBuilder(); 
html.Append("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>"); 
html.Append("<html xmlns='http://www.w3.org/1999/xhtml'>"); 
html.Append("<html><head><title>测试word</title></head>"); 
html.Append("<body>"); 
//html.Append("<table cellpadding='0' cellspacing='0' border='1'>"); 
html.Append(dsTr); 
//html.Append("</table>"); 
html.Append("</body>"); 
html.Append("</html>"); 
return html.ToString(); 
} 
/// <summary> 
/// 保存Word 
/// </summary> 
/// <param name="savePath"></param> 
/// <param name="data"></param> 
/// <returns></returns> 
protected bool SaveWord(string savePath,string data) 
{ 
try 
{ 
using (StreamWriter sw = new StreamWriter(savePath,true, Encoding.Default)) 
{ 
sw.WriteLine(data); 
sw.Close(); 
sw.Dispose(); 
} 
return true; 
} 
catch 
{ 
return false; 
} 
return false; 
} 
/// <summary> 
/// 导入 
/// </summary> 
/// <param name="sender"></param> 
/// <param name="e"></param> 
private void button1_Click(object sender, EventArgs e) 
{ 
//保存路径 
string path = string.Format("{0}{1}", Application.StartupPath, "保存物理路径"); 
//多个表 这里的dataset需要换成从数据库查询出来的dataset 
foreach(DataTable dt in new DataSet().Tables) 
{ 
StringBuilder _tables = new StringBuilder(); 
for (int i = 0; i < dt.Rows.Count; i++ ) 
{ 
if (i == 0) 
{ 
_tables.Append("<table cellpadding='0' cellspacing='0' border='1'>"); 
_tables.Append("<tr><td>表名字</td></tr>"); 
} 
_tables.Append("<tr><td>" + i + "</td><td>" + i + "</td><td>" + i + "</td></tr>"); 
if (i == (dt.Rows.Count - 1)) 
_tables.Append("</table>"); 
} 
SaveWord(path, this.SetWordTemplate(_tables.ToString())); 
} 
MessageBox.Show("生成成功!"); 
}

   嘿嘿!大功告成啦!这种方法快捷,但是不能设置word其他的分页功能等等,不过应对于从数据库中把所有表导入到wrod是绰绰有余啦!~
   俺乃小小小小鸟儿,如过哪位大大大大鸟有更好的方案好的Code请多多指教哦!~Thanks
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: