VBA SQL写入语句,从一个表格写入令一个表格?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA SQL写入语句,从一个表格写入令一个表格?相关的知识,希望对你有一定的参考价值。
strSQL = "INSERT INTO [sheet2$](日期) SELECT 日期 FROM (新版数据.xlsm.[sheet1$])" 这个语句 FROM 后面 SHEET1的地址怎么写?才是激活工作簿地址,
我的写法总是提示错误 from 后面的 表格地址怎么写?
读取和写入操作方式一样,唯一不同的是sql语句,读取用select,读取用insert,以读取为例子,录入如下代码:
'sql完整例子Sub testSql()
'定义连接对象 Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset '定义连接字符串 Dim conStr As String Dim sqlstr As String '连接字符串-以下是连接MSSQL数据库 conStr = "Provider=sqloledb; " _ & "Server=192.168.1.121; " _ & "Database=DATABASENAME;Uid=admin;Pwd=admin;" cnn.Open conStr sqlstr = "SELECT * from tablename" rs.Open sqlstr, cnn Range("a2").CopyFromRecordset rs rs.Close cnn.Close
End Sub
from后面要写成这样:
[sheet1$B2:B3]
完整示例可参考:
Sub Macro1()Dim cnn As Object, rs As Object, i&, SQL$
Set cnn = CreateObject("ADODB.Connection")
cnn.Open "Provider = Microsoft.ace.Oledb.12.0;Extended Properties =Excel 12.0;Data Source =" & ThisWorkbook.Path & "\\Data List.xlsx"
SQL = "Select a.* FROM [MQL$] a,[Excel 12.0;Database=" & ThisWorkbook.FullName & "].[Part List$] b WHERE a.PN=b.PN"
Set rs = cnn.Execute(SQL)
With Sheet4
.Cells.ClearContents
For i = 1 To rs.Fields.Count
.Cells(1, i) = rs.Fields(i - 1).Name
Next
.Range("a2").CopyFromRecordset rs
End With
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub 参考技术B 我真的想不起来了
如何通过网络抓取将表格数据从网站写入 CSV
【中文标题】如何通过网络抓取将表格数据从网站写入 CSV【英文标题】:How to write table data from website to CSV through web scraping 【发布时间】:2019-09-18 16:49:45 【问题描述】:我是网络抓取的新手,我正在尝试在登录后抓取网站上的表格数据。我希望将第 2 列乘以 10。
目前表格正在写入 csv,但我真正想要的工作是将第二列乘以 10 并写入 csv
我试过的是:
r2=session.post("http://www.example.com")
soup = BeautifulSoup(r2.text, "html.parser")
csvFile=open('Table.csv','w')
output = csv.writer(csvFile)
for table in soup.find_all('table')[5:]:
for row in table.find_all('tr'):
col = map(cell_text, row.find_all(re.compile('t[dh]')))
output.writerow(col)
output.writerow([])
csvFile.close()
例如,如果我在网站中有一个包含数据的表格:
Time Pressure Mass Temp
0.00 1.01 21 23.09
1.00 2.0908 21.1 10.07
2.0 2.8666 22.3 13.6
0.555 2.6545 2.4 32.56
The data for writing csv file should be:
0.00 10.1 21 23.09
1.00 20.908 21.1 10.07
2.0 28.666 22.3 13.6
0.555 26.545 2.4 32.56
怎么做?
【问题讨论】:
【参考方案1】:这取决于元素的放置方式,这里我有解决方案,你可以将它应用到 csv 上。
import pandas as pd
df = pd.read_csv("Table.csv")
df.Pressure = df.Pressure * 10
df.to_csv("Table_Updated.csv",index=False)
df.to_csv("DataExport.csv",index=False,header=False) # Store without header
【讨论】:
.如何直接从html表而不是从csv文件写入? 您可以在将数据框写入csv之前创建数据框,进行后处理并将其写入csv。我在这里添加了样本。 link 我已经更新了我的要求。我不想将标题写入 csv。如何在不写标题的情况下将第二列乘以 10? 你指的是表格提取吗?如果是这样,您可以在创建 Dataframedf = pd.DataFrame(table_data[1:],columns=table_data[0])
到 df = pd.DataFrame(table_data[1:])
时忽略该列
更新了答案,在 pandas 中导出时可以使用 header=False以上是关于VBA SQL写入语句,从一个表格写入令一个表格?的主要内容,如果未能解决你的问题,请参考以下文章
如何用Java实现将word里的表格数据写入到excel中去
用VBA中将Excel的数据写入Word文档,格式文本怎么传递?
在EXCEL中用VBA怎样操作WORD文档中嵌入的EXCEL表格?