博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#2.0 读word的多个表格到DataGridView或是其它控件 XP Vista
阅读量:5235 次
发布时间:2019-06-14

本文共 1494 字,大约阅读时间需要 4 分钟。

 1 
#region
 DataTalbe 要考虑第一行是表头,第二行开始为数据
 2 
 3 
            
try
 4 
            {
 5 
                
//
tablePos表格序号,就是查找word文档几个表格的自动给的序号
 6 
                
for
 (
int
 tablePos 
=
 
1
; tablePos 
<=
 oDoc.Tables.Count; tablePos
++
)
 7 
                {
 8 
 9 
                    
string
 t 
=
 tablePos.ToString();
10 
                    DataSet ds 
=
 
new
 DataSet();
11 
                    DataTable dt 
=
 
new
 DataTable(t);
12 
                    
//
 DataGridView dgv = new DataGridView();
13 
                    ds.Tables.Add(dt);
14 
15 
                    Word.Table nowTable 
=
 oDoc.Tables.Item(tablePos);
16 
                    DataRow dr;
17 
18 
                    
//
取得第一行标题值
19 
                    
for
 (
int
 rowPos 
=
 
1
; rowPos 
<=
 nowTable.Rows.Count; rowPos
++
)
20 
                    {
21 
                        
//
第一行值                               
22 
                        
if
 (rowPos 
==
 
1
)
23 
                        {
24 
                            
for
 (
int
 columPos 
=
 
1
; columPos 
<=
 nowTable.Columns.Count; columPos
++
)
25 
                            {
26 
                                
string
 tableMessage 
=
 nowTable.Cell(rowPos, columPos).Range.Text;
27 
                                tableMessage 
=
 tableMessage.Remove(tableMessage.Length 
-
 
2
2
).Trim(); ;
28 
                                
//
只求到了第一行值  
29 
                                dt.Columns.Add(tableMessage);
30 
31 
32 
33 
                            }
34 
                        }
35 
                        
else
36 
                        {
37 
                            
//
第二行值
38 
                            dr 
=
 dt.NewRow();
39 
                            
for
 (
int
 columPos 
=
 
1
; columPos 
<=
 nowTable.Columns.Count; columPos
++
)
40 
                            {
41 
                                
string
 tableMessage 
=
 nowTable.Cell(rowPos, columPos).Range.Text;
42 
                                tableMessage 
=
 tableMessage.Remove(tableMessage.Length 
-
 
2
2
).Trim();
43 
                                dr[columPos 
-
 
1
=
 tableMessage;
44 
45 
                            }
46 
                            dt.Rows.Add(dr);
47 
48 
                        }
49 
                    }
50 
51 
                    dataGridView1.DataSource 
=
 ds.Tables[t].DefaultView;
52 
                   
53 
                }
54 
55 
56 
            }
57 
            
catch
 (Exception ex)
58 
            {
59 
                
//
throw;
60 
                MessageBox.Show(
"
你选择的文档不是表格格式不对
"
"
提示
"
);
61 
            }
62 
            oReadOnly 
=
 
true
;
63 
            Cursor 
=
 Cursors.Default;
64 
            
#endregion

转载于:https://www.cnblogs.com/geovindu/archive/2009/03/19/1417137.html

你可能感兴趣的文章
逻辑运算和while循环.
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
cookies相关概念
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
svn客户端清空账号信息的两种方法
查看>>
springboot添加servlet的两种方法
查看>>
java的Array和List相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
vue:axios二次封装,接口统一存放
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>