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

参考技术A

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? 你指的是表格提取吗?如果是这样,您可以在创建 Dataframe df = pd.DataFrame(table_data[1:],columns=table_data[0])df = pd.DataFrame(table_data[1:]) 时忽略该列 更新了答案,在 pandas 中导出时可以使用 header=False

以上是关于VBA SQL写入语句,从一个表格写入令一个表格?的主要内容,如果未能解决你的问题,请参考以下文章

不在电子表格中从头开始写入。 Excel VBA。

如何用Java实现将word里的表格数据写入到excel中去

用VBA中将Excel的数据写入Word文档,格式文本怎么传递?

在EXCEL中用VBA怎样操作WORD文档中嵌入的EXCEL表格?

如何在Excel表格中将系统导出的部门的代码,用公式或者vba转换成文字?

php 如何把一条sql语句写入数据库