怎样获取html表格中的数据,然后存入数据库!
解决方案 »
- 请大家帮帮忙~~~~~~~~~
- 怎么不能加载外部程序?帮我看看。
- 如何顯示一個數值它佔用多少字節
- 如何将一张表(包括内容)从本地mdb文件全部上传到SQL的某数据库中去?
- Rave的使用
- 气死了,都来看看。
- 高手们请赐教!
- Delphi显示BMP图片的问题:如何通过读取文件头,信息头,调色板,位图数据显示BMP图片,而不是使用如image.picture:=等的方法?
- 急!在运行期间,对于LISTBOX,如何动态的指定特定的ITEM为当前的ITEM?currentitem:=ListBox1.ItemIndex;ListBox1.Items.Move(currentitem,c
- 很简单的问题
- ODAC的问题:跨网段就连接不上ORACLE(内详)
- 急!急!请教各位高手,一个关于DBGrid控件的问题
<table>
<tr><td>内容1</td></tr>
<tr><td>内容2</td></tr>
</table>只要表格字符串按<td></td>分组出来就可以了
begin
WebBrowser1.Navigate('about:blank');
while WebBrowser1.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
WebBrowser1.OleObject.Document.body.innerHTML := Memo1.Text;
end;procedure TForm1.Button2Click(Sender: TObject);
var
i, j: integer;
ovTable: OleVariant;
begin
//HTML中的第一個Table
ovTable := WebBrowser1.OleObject.Document.all.tags('TABLE').item(0);
StringGrid1.RowCount := ovTable.Rows.Length ;
StringGrid1.ColCount := ovTable.Rows.Item(i).Cells.Length; for i := 0 to (ovTable.Rows.Length - 1) do
begin
for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
begin
StringGrid1.Cells[j,i] := ovTable.Rows.Item(i).Cells.Item(j).InnerText;
end;
end;
end;(注:先把上述网页Html Source放入Memo1.Text、
再準備一個TWebBrowser和TStringGrid控件。
Memo1.Text的内容 -> TWebBrowser -> TStringGrid
此例只取了第一個Table的内容...)
因此给出一个读取html表格中的数据的方法...你若想直接取到数据集中,
可先把html转换成xml,然后用TClientDataSet控件直接连接xml...
//HTML中的第一個Table
ovTable := WebBrowser1.OleObject.Document.all.tags('TABLE').item(0);
StringGrid1.RowCount := ovTable.Rows.Length ;
StringGrid1.ColCount := ovTable.Rows.Item(i).Cells.Length; for i := 0 to (ovTable.Rows.Length - 1) do
begin
for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
begin
StringGrid1.Cells[j,i] := ovTable.Rows.Item(i).Cells.Item(j).InnerText;
end;
end;如果很规范,比如是一张表,就可以存成XML格式,ADO和ClientDataSet都支持LoadFromFile
获得记录集
也可以先取到数据集中再存入数据库
procedure TForm1.Button3Click(Sender: TObject);
var
i, j: integer;
ovTable: OleVariant;
tempStr: string;
begin
ovTable := WebBrowser1.OleObject.Document.all.tags('TABLE').item(0);
for i := 0 to (ovTable.Rows.Length - 1) do
begin
for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
begin
ADoquery1.Edit;
DBgrid1.Fields[j+1].Value := ovTable.Rows.Item(i).Cells.Item(j).InnerText;
Adoquery1.Post;
end;
end;
end;
難道你還不知自己己上”光栄榜”↓了嗎?http://community.csdn.net/Expert/topic/3071/3071709.xml?temp=.253689 難道真要一不做、二不休? 你会玩”死”自己的。
我可叫你給害残了、被破拿了”水分”。 hehe~~~