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之類的技術動態從後台伺服器取回來的,所以,你用代碼並不能直接把裡面的數據提取出來,這個還真不太好搞。