史上最简单将数据信息导入wrod文档方案(C# for word)

本文介绍了一种通过代码批量生成Word文档的方法,该方法适用于从数据库中导出表数据并将其转换为Word文档的需求。文章提供了具体的代码实现,包括设置Word模板及保存Word文档等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 1         /// <summary>
 2         /// 设置Word模板,word表格样式在此设置
 3         /// </summary>
 4         /// <param name="dsTr"></param>
 5         /// <returns></returns>
 6         protected string SetWordTemplate(string dsTr)
 7         {
 8             StringBuilder html = new StringBuilder();
 9 
10             html.Append("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>");
11             html.Append("<html xmlns='http://www.w3.org/1999/xhtml'>");
12             html.Append("<html><head><title>测试word</title></head>");
13             html.Append("<body>");
14             //html.Append("<table cellpadding='0' cellspacing='0' border='1'>");
15             html.Append(dsTr);
16             //html.Append("</table>");
17             html.Append("</body>");
18             html.Append("</html>");
19 
20             return html.ToString();
21         }
22 
23         /// <summary>
24         /// 保存Word
25         /// </summary>
26         /// <param name="savePath"></param>
27         /// <param name="data"></param>
28         /// <returns></returns>
29         protected bool SaveWord(string savePath,string data)
30         {
31             try
32             {
33                 using (StreamWriter sw = new StreamWriter(savePath,true, Encoding.Default))
34                 {
35                     sw.WriteLine(data);
36 
37                     sw.Close();
38                     sw.Dispose();
39                 }
40 
41                 return true;
42             }
43             catch
44             {
45                 return false;
46             }
47 
48             return false;
49         }
50 
51         /// <summary>
52         /// 导入
53         /// </summary>
54         /// <param name="sender"></param>
55         /// <param name="e"></param>
56         private void button1_Click(object sender, EventArgs e)
57         {
58             //保存路径
59             string path = string.Format("{0}{1}", Application.StartupPath, "保存物理路径");
60 
61             //多个表                 这里的dataset需要换成从数据库查询出来的dataset
62             foreach(DataTable dt in new DataSet().Tables)
63             {
64                 StringBuilder _tables = new StringBuilder();
65                 for (int i = 0; i < dt.Rows.Count; i++ )
66                 {
67                     if (i == 0)
68                     {
69                         _tables.Append("<table cellpadding='0' cellspacing='0' border='1'>");
70                         _tables.Append("<tr><td>表名字</td></tr>");
71                     }
72 
73                     _tables.Append("<tr><td>" + i + "</td><td>" + i + "</td><td>" + i + "</td></tr>");
74 
75                     if (i == (dt.Rows.Count - 1))
76                         _tables.Append("</table>");
77                 }
78 
79                 SaveWord(path, this.SetWordTemplate(_tables.ToString()));
80             }
81 
82             MessageBox.Show("生成成功!");           
83         }
84 
85  
86 
87     嘿嘿!大功告成啦!这种方法快捷,但是不能设置word其他的分页功能等等,不过应对于从数据库中把所有表导入到wrod是绰绰有余啦!~
88 
89     俺乃小小小小鸟儿,如过哪位大大大大鸟有更好的方案好的Code请多多指教哦!~Thanks
90 

 

 

转载于:https://www.cnblogs.com/keke/archive/2010/01/15/1648329.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值