word读取表格数据.docx
- 文档编号:8925524
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:8
- 大小:16.70KB
word读取表格数据.docx
《word读取表格数据.docx》由会员分享,可在线阅读,更多相关《word读取表格数据.docx(8页珍藏版)》请在冰豆网上搜索。
word读取表格数据
竭诚为您提供优质文档/双击可除
word读取表格数据
篇一:
读取woRd表格数据
(一)
按单元格读取woRd表格数据编辑:
madmlwt1.按单元格读取表格数据到当前工作表【问题】与被操作的工作簿保存在相同位置的文件夹“woRd表格”中的文档“工程订单.doc”,如下图所示:
把表格中的数据从“序号”单元格开始逐个单元格读取到被操作的excel工作簿的当前工作表a1开始的单元格区域。
【代码1】
sub逐个单元格读取woRd表格数据()
application.screenupdating=False关闭屏幕刷新
开始时间=timer秒
wjm=thisworkbook.path清除表中已有的数据内容
setwdoc=createobject(wjm)定义word对象
setwtable=wdoc.tables
(1)定义表格对象
hs=wtable.Rows.count计算表格总行数
ls=wtable.columns.count计算表格总列数
Fori=1tohs从表格第1行循环到最后一行
Forj=1tols从表格第1列循环到最后一列
x=wtable.cell(i,j).Range.text单元格对象(包含回车符)
activesheet.cells(i,j)=left(x,len(x)-1)把去掉回车符后的文本写入excel单元格nextj
nexti
wdoc.close关闭文档
setwtable=nothing释放表格对象变量存储空间setwdoc=nothing释放文档对象变量存储空间activesheet.cells.entirecolumn.autoFit自动调整列宽msgboxchr(10)关闭屏幕刷新endsub
说明:
写入excel中数据保持原表格中数据格式,所有数据都是文本格式,不能进行计算。
【代码2】
sub逐个单元格读取woRd表格数据()
application.screenupdating=False关闭屏幕刷新
开始时间=timer秒
wjm="工程订单"
docm=thisworkbook.path被引用的doc文件
ifdir(docm)=wjm如果指定引用的文件存在
activesheet.cells.clearcontents清除当前工作表中所有数据内容
setwdapp=createobject(docm)定义一个word对象变量
withwdapp.tables
(1)打开的woRd文件第一个表格
hs=.Rows.count表格的行数
ls=.columns.count表格的列数
Forh=1tohs从第1行循环到最后一行
Forl=1tols从第1列循环到最后一列
ifl=1then第1列设置为文本格式
activesheet.cells(h,l).numberFormatlocal="@"activesheet.cells(h,l)=Replace(.cell(h,l).Range.text,chr(13)woRd表格中单元格字符去掉回车符和黑加点的数据写入工作表单元格(che$(13)=chr(13))
elseifl>1then第1列后的列只读取数据值
activesheet.cells(h,l)=Replace(.cell(h,l).Range.text,chr(13)woRd表格中单元格字符去掉回车符和黑加点的数据写入工作表单元格
endif
nextl
nexth
endwith
wdapp.close关闭文件
setwdapp=nothing释放存储空间
activesheet.cells.entirecolumn.autoFit自动调整列宽
msgboxchr(10)如果指定引用的文件不存在
msgboxchr(10)退出程序endifapplication.screenupdating=False关闭屏幕刷新endsub说明:
单独设置如0打头或身份证号码类数据列在excel中的单元格格式,导入excel的数据可以进行计算。
2.读取多表格数据到当前工作表【问题】与被操作的工作簿保存位置相同的文件夹“woRd表格”中的文档“订单.doc”中有多个格式完全相同的表格,把这些表格中数据逐个单元格读取到被操作的当前工作表a1起始的单元格区域。
【代码】
sub读取多表格数据到当前工作表()
application.screenupdating=False关闭屏幕刷新
dqt=timer程序运行开始时间(秒)
wjm="订单"
docm=thisworkbook.path被引用的doc文件
ifdir(docm)=wjm如果指定引用的文件存在
activesheet.cells.clearcontents清除当前工作表中所有数据内容
setwdapp=createobject(docm)定义一个word对象变量
gs=wdapp.tables.count文档中表格总个数
Forg=1togs
withwdapp.tables(g)打开的woRd文件第一个表格
hs=.Rows.count表格的行数
ifg=1then
起始行=1
elseifg>1then
起始行=2
endif
Forh=起始行tohs从起始行循环到最后一行
l=1起始单元格个数
ifg=1then
xrh=h数据写入工作表的行序号
elseifg>1then
xrh=activesheet.cells(Rows.count,1).end(xlup).Row+1数据写入工作表的行序号
endif
Foreachsjhin.Rows(h).cells遍历woRd表格的每行每个单元格
ifl=1then
activesheet.cells(xrh,l).numberFormatlocal="@"文本格式
activesheet.cells(xrh,l)=Replace(.cell(h,l).Range.text,chr(13)woRd表格中单元格字符去掉回车符和黑加点的数据写入工作表单元格
elseifl>1then
activesheet.cells(xrh,l)=Replace(.cell(h,l).Range.text,chr(13)woRd表格中单元格字符去掉回车符和黑加点的数据写入工作表单元格(che$(13)=chr(13))
endif
l=l+1单元格个数计数器
篇二:
读取woRd表格数据
(二)
把woRd表格数据复制粘贴到excel工作表编辑:
madmlwt在excel中用Vba操作woRd表格,如果woRd文档中有多个格式完全相同的表格、或者表格数据庞大,那么逐个单元格读取可能花费时间很长,所以考虑用复制/粘贴的办法把整个(或多个)表格数据复制后粘贴到当前工作表,以求尽可能的提高速度,用较少时间来解决要解决的问题。
【问题】
与被操作工作簿保存位置相同的文件夹“woRd表格”中的文档“111多.doc”中有多个表格,把这多个表格数据复制粘贴到当前工作表a1起始的单元格区域(工作表第一行是标题行)。
【代码】
sub把woRd文档中多个表格数据复制粘贴到当前工作表()
application.screenupdating=False关闭屏幕刷新
开始时间=timer秒
activesheet.cells.clearcontents清除表中已有的数据内容
wjm=thisworkbook.path定义word对象
bgs=wdoc.tables.count文档中的表格个数
Forg=1tobgs
setwtable=wdoc.tables(g)定义表格对象
hs=wtable.Rows.count计算表格总行数
ls=wtable.columns.count计算表格总列数
ifg=1then
wdoc.Range(wtable.cell(1,1).Range.start,wtable.cell(hs,ls).Range.end).select选中表格
wdoc.activewindow.selection.copy复制表格
withactivesheet当前工作表
.Range("d:
e").numberFormatlocal="@"文本格式
.cells(1,1).select选中第一个单元格
.pastespecialFormat:
="unicode文本"选择为文本(或unicode文本)方式粘贴
endwith
elseifg>1then
wdoc.Range(wtable.cell(2,1).Range.start,wtable.cell(hs,ls).Range.end).select选中表格第2行到最后一行
wdoc.activewindow.selection.copy复制表格
withactivesheet当前工作表
xrh=.usedRange.Rows.count+1写入数据的起始行数.cells(xrh,1).select选中第一个单元格
.pastespecialFormat:
="unicode文本"选择为文本(或unicode文本)方式粘贴
endwith
endif
nextg
withactivesheet当前工作表
.cells.entirecolumn.autoFit自动调整列宽
.cells(1,1).select
endwith
wdoc.close关闭文档
setwtable=nothing释放表格对象变量存储空间
setwdoc=nothing释放文档对象变量存储空间
msgboxchr(10)关闭屏幕刷新endsub
说明:
格式完全相同的多表格复制粘贴到excel工作表,第一个表格整个复制粘贴。
第二个表格开始,复制粘贴第二行到最后一行数据区域即可。
根据实际表格数据情况,诸如0打头的数字及身份证号码列,在excel中应该设置对应列为
文本格式,否则会出现数据损失,不能完整显示。
如果被操作的woRd文档中只有一个表格,上面的代码仍然适用!
篇三:
使用c_读取word表格数据
读取word表格数据的方法
//将读取word表格封装与方法中。
publicstringReadword(stringfilename,introwindex,intcolindex){
applicationclasscls=null;
documentdoc=null;
tabletable=null;
objectmissing=missing.Value;
objectpath=filename;
cls=newapplicationclass();
try
{
doc=cls.documents.open
(refpath,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing);table=doc.tables[1];
stringtext=table.cell(rowindex,
colindex).Range.text.tostring();
text=text.substring(0,text.length-2);//去除尾部的markreturntext;
}
catch(exceptionex)
{
returnex.message;
}
finally
{
if(doc!
=null)
doc.close(refmissing,refmissing,refmissing);cls.quit(refmissing,refmissing,refmissing);
}
}
这个方法用于读取word表格中某个单元格的数据。
其中的参数分别为文件名(包括路径),行号,列号。
============================================
classwordtableRead
{
privatestringfilename;
privateapplicationclasscls=null;
privatedocumentdoc=null;
privatetabletable=null;
privateobjectmissing=missing.Value;
//word是否处于打开状态
privateboolopenstate;
/**////
///自定义构造方法
///
/// 包含路径的文件名
publicwordtableRead(stringfilename)
{
this.filename=filename;
}
/**////
///打开word文档
///
publicvoidopen()
{
objectpath=filename;
cls=newapplicationclass();
try
{
doc=cls.documents.open
(refpath,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing);openstate=true;
}
catch
{
openstate=false;
}
}
/**////
///返回指定单元格中的数据
///
/// 表格号
/// 行号
/// 列号
///单元格中的数据
publicstringReadword(inttableindex,introwindex,intcolindex){
//givethevaluetothetowint32params.
try
{
if(openstate==true)
{
table=doc.tables[tableindex];
stringtext=table.cell(rowindex,
colindex).Range.text.tostring();
text=text.substring(0,text.length-2);//去除尾部的mark
returntext;
}
else
{
return"";
}
}
catch
{
return"error";
}
}
/**////
///关闭word文档
///
publicvoidclose()
{
if(openstate==true)
{
if(doc!
=null)
doc.close(refmissing,refmissing,refmissing);cls.quit(refmissing,refmissing,refmissing);}
}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- word 读取 表格 数据