比较简单的将数据信息导入wrod文档方案(C# for word) |
本文标签:数据信息,wrod 复制代码 代码如下: /// <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 |