导航:首页 > 编程大全 > c提取网页表格数据库

c提取网页表格数据库

发布时间:2023-09-21 09:47:43

1. 如何将网页表格导出到excel

小编举得这个例子是网页中关于2014年高考投档情况的一个汇总表,不过在网页中,如图,我们可以看到共计是分成了17个网页,看着就有些烦躁。

如图,我们可以直接把鼠标放到表格处,右击,选择导出到excel中即可。

如图,这就是导出的excel,一直导出。

将导出的经验进行整理,如图,整理到一个文件夹中。

然后就可以参照小编的这一篇经验将所有的excel工作薄合并成一个即可。

当然,至于弄成word版的就直接复制excel里面粘贴就好了,记得粘贴的时候在excel中提前准备规划好,别学小编下图中弄的这么丑就行。

当然,小编举得这个例子中,还有个更便捷有效的法子,就是Ctrl+A,Ctrl+C,Ctrl+V,不过这个法子貌似不够高大上嘛。

图解看网络经验http://jingyan..com/article/cb5d61050c90e6005d2fe054.html

2. 如何用c语言提取excel中的数据

1.方法一:采用OleDB读取EXCEL文件:

把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:

publicDataSetExcelToDS(stringPath)

{

stringstrConn="Provider=Microsoft.Jet.OLEDB.4.0;"+"DataSource="+Path+";"+"ExtendedProperties=Excel8.0;";

OleDbConnectionconn=newOleDbConnection(strConn);

conn.Open();

stringstrExcel="";

OleDbDataAdaptermyCommand=null;

DataSetds=null;

strExcel="select*from[sheet1$]";

myCommand=newOleDbDataAdapter(strExcel,strConn);

ds=newDataSet();

myCommand.Fill(ds,"table1");

returnds;

}

对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到

stringstrConn="Provider=Microsoft.Jet.OLEDB.4.0;"+"DataSource="+Path+";"+"ExtendedProperties=Excel8.0;";

OleDbConnectionconn=newOleDbConnection(strConn);

DataTableschemaTable=objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);

stringtableName=schemaTable.Rows[0][2].ToString().Trim();

另外:也可进行写入EXCEL文件,实例如下:
publicvoidDSToExcel(stringPath,DataSetoldds)

{

//先得到汇总EXCEL的DataSet主要目的是获得EXCEL在DataSet中的结构

stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+path1+";ExtendedProperties=Excel8.0";

OleDbConnectionmyConn=newOleDbConnection(strCon);

stringstrCom="select*from[Sheet1$]";

myConn.Open();

OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn);

ystem.Data.OleDb.OleDbCommandBuilderbuilder=newOleDbCommandBuilder(myCommand);

//QuotePrefix和QuoteSuffix主要是对builder生成InsertComment命令时使用。

builder.QuotePrefix="[";//获取insert语句中保留字符(起始位置)

builder.QuoteSuffix="]";//获取insert语句中保留字符(结束位置)

DataSetnewds=newDataSet();

myCommand.Fill(newds,"Table1");

for(inti=0;i<oldds.Tables[0].Rows.Count;i++)

{

在使用ImportRow后newds内有值,但不能更新到Excel中因为所有导入行的

DataRowState!=Added

DataRownrow=aDataSet.Tables["Table1"].NewRow();

for(intj=0;j<newds.Tables[0].Columns.Count;j++)

{

nrow[j]=oldds.Tables[0].Rows[i][j];

}

newds.Tables["Table1"].Rows.Add(nrow);

}

myCommand.Update(newds,"Table1");

myConn.Close();

}

2.方法二:引用的com组件:Microsoft.Office.Interop.Excel.dll读取EXCEL文件
首先是Excel.dll的获取,将Office安装目录下的Excel.exe文件Copy到DotNet的bin目录下,cmd到该目录下,运行TlbImpEXCEL.EXEExcel.dll得到Dll文件。再在项目中添加引用该dll文件.
//读取EXCEL的方法(用范围区域读取数据)

privatevoidOpenExcel(stringstrFileName)

{

objectmissing=System.Reflection.Missing.Value;

Applicationexcel=newApplication();//lauchexcelapplication

if(excel==null)

{

Response.Write("<script>alert('Can'taccessexcel')</script>");

}

else

{

excel.Visible=false;excel.UserControl=true;

//以只读的形式打开EXCEL文件

Workbookwb=excel.Application.Workbooks.Open(strFileName,missing,true,missing,missing,missing,

missing,missing,missing,true,missing,missing,missing,missing,missing);

//取得第一个工作薄

Worksheetws=(Worksheet)wb.Worksheets.get_Item(1);

//取得总记录行数(包括标题列)

introwsint=ws.UsedRange.Cells.Rows.Count;//得到行数

//intcolumnsint=mySheet.UsedRange.Cells.Columns.Count;//得到列数

//取得数据范围区域(不包括标题列)

Rangerng1=ws.Cells.get_Range("B2","B"+rowsint);//item

Rangerng2=ws.Cells.get_Range("K2","K"+rowsint);//Customer

object[,]arryItem=(object[,])rng1.Value2;//getrange'svalue

object[,]arryCus=(object[,])rng2.Value2;

//将新值赋给一个数组

string[,]arry=newstring[rowsint-1,2];

for(inti=1;i<=rowsint-1;i++)

{

//Item_Code列

arry[i-1,0]=arryItem[i,1].ToString();

//Customer_Name列

arry[i-1,1]=arryCus[i,1].ToString();

}

Response.Write(arry[0,0]+"/"+arry[0,1]+"#"+arry[rowsint-2,0]+"/"+arry[rowsint-2,1]);

}

excel.Quit();excel=null;

Process[]procs=Process.GetProcessesByName("excel");

foreach(Processproinprocs)

{

pro.Kill();//没有更好的方法,只有杀掉进程

}

GC.Collect();

}

3.方法三:将EXCEL文件转化成CSV(逗号分隔)的文件,用文件流读取(等价就是读取一个txt文本文件)。


先引用命名空间:usingSystem.Text;和usingSystem.IO;

FileStreamfs=newFileStream("d:\Customer.csv",FileMode.Open,FileAccess.Read,FileShare.None);

StreamReadersr=newStreamReader(fs,System.Text.Encoding.GetEncoding(936));

stringstr="";

strings=Console.ReadLine();

while(str!=null)

{str=sr.ReadLine();

string[]xu=newString[2];

xu=str.Split(',');

stringser=xu[0];

stringdse=xu[1];if(ser==s)

{Console.WriteLine(dse);break;

}

}sr.Close();

另外也可以将数据库数据导入到一个txt文件,实例如下:
//txt文件名

stringfn=DateTime.Now.ToString("yyyyMMddHHmmss")+"-"+"PO014"+".txt";

OleDbConnectioncon=newOleDbConnection(conStr);

con.Open();

stringsql="selectITEM,REQD_DATE,QTY,PUR_FLG,PO_NUMfromTSD_PO014";

//OleDbCommandmycom=newOleDbCommand("select*fromTSD_PO014",mycon);

//OleDbDataReadermyreader=mycom.ExecuteReader();//也可以用Reader读取数据

DataSetds=newDataSet();

OleDbDataAdapteroda=newOleDbDataAdapter(sql,con);

oda.Fill(ds,"PO014");

DataTabledt=ds.Tables[0];

FileStreamfs=newFileStream(Server.MapPath("download/"+fn),FileMode.Create,FileAccess.ReadWrite);

StreamWriterstrmWriter=newStreamWriter(fs);//存入到文本文件中

//把标题写入.txt文件中

//for(inti=0;i<dt.Columns.Count;i++)

//{

//strmWriter.Write(dt.Columns[i].ColumnName+"");

//}

foreach(DataRowdrindt.Rows)

{

stringstr0,str1,str2,str3;

stringstr="|";//数据用"|"分隔开

str0=dr[0].ToString();

str1=dr[1].ToString();

str2=dr[2].ToString();

str3=dr[3].ToString();

str4=dr[4].ToString().Trim();

strmWriter.Write(str0);

strmWriter.Write(str);

strmWriter.Write(str1);

strmWriter.Write(str);

strmWriter.Write(str2);

strmWriter.Write(str);

strmWriter.Write(str3);

strmWriter.WriteLine();//换行

}

strmWriter.Flush();

strmWriter.Close();

if(con.State==ConnectionState.Open)

{

con.Close();

}

3. 怎么通过C语言读取网页里面的数据

简单的请求格式

GET /index.php HTTP/1.0
host:www.zixue7.com

当我们和服务器连接上之后,发送上面的数据过去,服务器就会返回 index.php 这个页面给我们。

GET 这个 是表示 以什么方式请求,HTTP中还有很多其他的请求方式,常用的就 GET POST (更详细的 可以点开上面 http协议 那个链接)

GET 后面紧跟一个空格 然后 给出,要获取的资源的名称, /index.php 就表示获取网站服务器根目录下 index.php 执行后所产生的内容,我们也可以改成 GET / HTTP/1.0 这就表示获取默认首页的内容 。 GET /1.html HTTP/1.0 就是获取 服务器根目录下 1.html的内容,很容易理解吧。

接下来隔一个空格 跟上 HTTP/1.0 表示 http协议的版本,这个是固定的 。

第二行 host:www.zixue7.com 用来指定 访问哪个主机。 大家都知道,一个服务器可以放很多个网站,每个网站有不同的域名,所以我们需要用这个host来指定 我们要访问的是哪个网站,这样 才能正确得访问到我们想访问的网站。

第一步,连接服务器。
第二步,按照http协议,发送请求数据,然后就是接受返回的内容。

没错,就这么简单。

在编写程序之前,我们先用一个小工具来模拟一下这个过程,好让我们对http协议了解更深入一些。

telnet工具 如果是 win7下的朋友 猛戳这里-->win7开启telnet功能

到此为止,我假设大家电脑上已经开启了 telnet功能,正题开始。

telnet 他是一个基于tcp/ip 协议的程序,为我们用户提供一个 与其他电脑通信的工具,我们可以使用他来和其他电脑进行连接通信。

开始->运行->输入telnet回车, 出现一个黑框如下。

我们这时就可以输入命令,来连接远程主机,比如我们这次是要连接我们自学去论坛 的服务器,
那么我们就输入 open www.zixue7.com 80 然后回车。

open 是打开的意思 后面跟上 要打开那个主机 然后 后面跟上端口, web服务器默认使用的是80端口,所以 要加上80端口(不加端口 telnet默认是23端口)。

然后会出现下图的情况,这时候 我们就可以输入命令了,输入的命令都将被发送到自学去论坛的服务器上面。大家注意一下 下图红色箭头所指出的部分,那里就是一个输入光标,不用管其他的字。

这就代表 我们已经和远程主机连接上了,就相当于我们上节课中 客户端执行到 connect 函数 之后 就是要调用 send函数发送数据了,在这里 我们只需要按键盘输入到黑色窗口中 就会发送到服务端。

我们依次输入以下内容,(注意,不能按退格,输入错误了,就重新打开telnet,重新操作。)

4. 怎样将网页中的数据转换成excel表格中的数据

将网页中的数据转换成excel表格中的数据的具体步骤如下:

我们需要准备的材料扰返分别是胡李猜:电脑、网络浏览器、Excel表格。

1、首先我们打开需要编裤型辑的网络浏览器,找到需要转换的网页表格,之后选中表格,按“Ctrl+C”进行复制。

5. 求教如何在 c/c++中读取数据库中表的数据!!!!!!!!!

int CountLines(char *filename) { ifstream ReadFile; int n=0; char line[512]; ReadFile.open(filename,ios::in);//ios::in 表示以只抄读的方式读取文件 if(ReadFile.fail())//文件打开失败:返回0 { return 0; } else//文件存在 { while(!ReadFile.eof()) { ReadFile.getline(line,512,'\n'); n++; } return n; }

6. c/c++怎么获取网页表格里面的数据 例如http://lol.qq.com/web201111/sort.shtml

仔细看网页源代码
<tbodyid="commRank_rankContent_350">
<tr><tdcolspan="8">数据加载中...</td></tr>
</tbody>
<scriptid="commRank_template_rankContent_350"type="text/html">
{for item in rankData}
<tr>
<td>${item.field2}</td>
<td><a href="http://lol.qq.com/act/a20111206report/list.htm?a=${item.field100}&n=${encodeURIComponent(item.field0)}" target="_blank">${item.field0}</a></td>
<td>${parseInt(item.field3)+parseInt(item.field4)}</td>
<td>${item.field3}</td>
<td>${item.field4}</td>
<td>${String(parseInt(item.field3)*100/(parseInt(item.field3)+parseInt(item.field4))).substr(0,5)}%</td>
<td>${item.field1}</td>
</tr>
{/for}
</script>

排名相关的数据都是从rankData这个里面读取出来的,在javascript里面用的应该是流行的json对象格式,直接在这个源文件里并没有找到rankData,但它引用了很多其它的js文件:
<scripttype="text/javascript"src="http://sl.qq.com/comm-htdocs/js/jquery-1.5.2.min.js"></script>
<scripttype="text/javascript"src="http://ossweb-img.qq.com/images/js/basic/templatemanager.js"></script>
<scripttype="text/javascript"src="http://sl.qq.com/comm-htdocs/js/game_area/lol_server_select.js"></script>
<scripttype="text/javascript"src="http://lol.qq.com/web201111/js/data_control.js"></script>
所以,rankData应该是定义在其它的脚本文件里面的,而里面数据应该是通过其它方法,比如ajax之类的技术动态从后台服务器取回来的,所以,你用代码并不能直接把里面的数据提取出来,这个还真不太好搞。

阅读全文

与c提取网页表格数据库相关的资料

热点内容
小米复制文件找不到 浏览:959
什么是网络层 浏览:73
如何利用编程做多文件数据合并 浏览:666
java如何用tcp发送16进制协议 浏览:975
js获取当天 浏览:637
在什么网站看战狼2 浏览:881
win7桌面工具栏不见了 浏览:346
qq群几个管理员 浏览:598
录光盘怎么找不到文件 浏览:885
flip5怎么连app 浏览:273
五个g的文件怎么传到u盘 浏览:316
如何用编程编译运行出心形图案 浏览:486
linuxcentos64vpn 浏览:328
桔城pdf转换成word转换器 浏览:754
java数组排重 浏览:846
1703版win10 浏览:357
windows文件上传 浏览:111
精通jsp编程技术 浏览:139
电脑软件删不了提示找不到文件 浏览:223
宁波哪里有学It编程的地方 浏览:808

友情链接