几种从数据库读取数据生成excel文件的比较

python将Excel文档转成.db数据库文件 python实现Excel转.db数据库 阅读详情

 

测试环境: 赛扬600+128M+Win2k Prof.(English.)+SQL Server 2000+Excel

2000+VB6(sp4)+ADO2.5

测试表记录数:10322,字段数:9 返回表中所有的纪录(select * from

table1),每种方法连续测试5次,在VB中使用MsgBox (DateDiff("s", t1,

Now()))计时(秒)


方法1。使用CopyFromRecordset(适用于Access,SQL)

第一次:49
第二次:45
第三次:43
第四次:43
第五次:42

方法2:使用QueryTable(适用于Access,SQL)

第一次:10
第二次:6
第三次:3
第四次:4
第五次:4

方法2:使用bcp(适用于SQL)

从命令行直接运行时间为701毫秒,从VB中返回时间为0
测试代码如下:

方法1:

Option Explicit

Private Sub Command1_Click()
    Dim t1 As Date
    t1 = Now()
   
   
    Dim strConn As String
    strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist

Security Info=False;Initial Catalog=mlog;Data Source=SZ09"
   
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
   
   
    Set cn = CreateObject("ADODB.Connection")
    cn.Open strConn
    cn.CursorLocation = adUseServer
    Set rs = cn.Execute("table1", , adCmdTable)
   
    Dim oExcel As Excel.Application
    Dim oBook As Excel.Workbook
    Dim oSheet As Object
    Set oExcel = CreateObject("Excel.Application")
    Set oBook = oExcel.Workbooks.Add
    Set oSheet = oBook.Worksheets(1)
   
    oSheet.Range("A1").CopyFromRecordset rs
   
    oBook.SaveAs "d:/1.xls"
    oExcel.Quit
    Set oSheet = Nothing
    Set oBook = Nothing
    Set oExcel = Nothing
   
    rs.Close
    Set rs = Nothing
   
    cn.Close
    Set cn = Nothing
   
    MsgBox (DateDiff("s", t1, Now()))
   
End Sub


方法 2:

Option Explicit

Private Sub Command1_Click()
    Dim t1 As Date
    t1 = Now()
   
    'Create a new workbook in Excel
  Dim oExcel As Object
  Dim oBook As Object
  Dim oSheet As Object
  Set oExcel = CreateObject("Excel.Application")
  Set oBook = oExcel.Workbooks.Add
  Set oSheet = oBook.Worksheets(1)
 
  Dim strConn As String
    strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist

Security Info=False;Initial Catalog=mlog;Data Source=SZ09"
   
  'Create the QueryTable
 
  Dim oQryTable As Object
  Set oQryTable = oSheet.QueryTables.Add( _
  "OLEDB;" & strConn & ";", oSheet.Range("A1"), "Select * from table1")
  oQryTable.RefreshStyle = xlInsertEntireRows
  oQryTable.Refresh False
 
  'Save the Workbook and Quit Excel
  oBook.SaveAs "d:/1.xls"
  oExcel.Quit
  Set oSheet = Nothing
    Set oBook = Nothing
    Set oExcel = Nothing
   
    MsgBox (DateDiff("s", t1, Now()))
End Sub

方法3:

Private Sub Command1_Click()
    Dim t1 As Date
    t1 = Now()
   
    Dim sCmd As String
    sCmd = "bcp mlog..table1 out d:/1.csv -w -t , -r /n -S sz09 -P

kenfil"
    Dim WSH As Object
    Set WSH = CreateObject("WScript.Shell")
    WSH.Run sCmd, True
   
    MsgBox (DateDiff("s", t1, Now()))
End Sub

Note: cvs本身是一个可以被excel使用的文件(你可以直接在excel中打开这个文

件),如果你希望将这个文件转换成xls文件,很简单:

  Dim oExcel As Object
  Dim oBook As Object
  Dim oSheet As Object
  Set oExcel = CreateObject("Excel.Application")
     
  Set oBook = oExcel.Workbooks.Open("d:/1.csv")
 
  'Save as Excel workbook and Quit Excel
  oBook.SaveAs "d:/1.xls", xlWorkbookNormal
  oExcel.Quit
 


 

 

QT快速读取数据量很大的Excel文件 最近写的一个项目中,有需要读取数据量很大(有10个sheet,每个sheet有65535行11列的数据)的Excel文件,用了COM和QODBC两种方法读取,速度很慢。 你可能会问,为啥不把数据放在数据库里,那样读取的速度更快?当然,需求要求是可以从数据库或者从Excel中读取数据这两种方式,所以没办法还是要操作Excel。 回归正题,在操作Excel上,QT有两种方式,一是通过COM 阅读详情

相关推荐

【微信小程序】生成excel并下载 | 微信 | excel | 文件下载 |

生成excel并下载 有一个需求就是通过微信云数据库导出数据到excel并且下载到本地。首先对这个任务进行分解。 一 通过云数据库读取数据生成excel 在前端页面index.wxml添加按钮,绑定函数cdb2excel <!-- 生成excel --> <view class="uploader" > <view class="uploader-text" bindtap="cdb2excel"> <text>生成excel&lt

听泪轩 7155

通过sql语句直接导出excel文件

Mysql 导出excel

m0_60005397的博客 2146

pandas从数据库读取数据,并生成表格

和上篇文章"Python读取Excel文件并写入数据库" 所需要的模块一样 sqlalchemy pymysql pandas pandas模块提供了read_sql_query()函数实现了对数据库的查询,to_sql()函数实现了对数据库的写入。并不需要实现新建MySQL数据表。 sqlalchemy模块实现了与不同数据库的连接,而pymysql模块则使得Python能够操作MySQL...

景霄之上的博客 6103

sql数据导出到excel

一、打开Navicat Premium 12。导出excel

码农的专栏 1397

从Mysql数据库读取数据批量导入到Excel文件

本篇和上篇类型,只是顺序发生了变化——从Mysql度数据并保存到Excel中。     导出XLS流程:读取数据库的表->循环记录构建制表符分隔的字段信息->设置header信息->导出文件(下载)到本地。     下面直接分享代码,导出文件outdb.php如下: require_once './PHPExcel.php'; //路径根据自己实际项目的路径进行设置 //下

Mchgloak 的专栏 1823

C# 导入Excel文件数据的几种方法

方法一:利用OleDb直接连接Excel文件进行读取数据。 //获取Excel路径 string fileUrl = GetExcel(fuImportStudent); //适合老旧版本的xls文件 const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}...

mojocube的博客 1万+

sql数据库的表转excel表格,有哪些途径

1. 从mysql中导出.cvs文件,再由excel导入 将数据存储在mysql数据库中,使用mysqlworkbench客户端,连上服务器右键表可导出.cvs格式的文本数据。excel打开后可以点击数据,自文本,即可导入刚刚从mysql数据库导出的表的.cvs文件。 这个方式的导出导入原理是,cvs打开即可看到是类似json的文本数据,不同的是,每行数据都用分隔符做了单元格截断。excel...

u012775853的博客 4468

JAVA从Excel中读取数据保存到数据库中

1.jar包 2.数据库信息 3.JDBC连接数据库工具类 package Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLExcepti...

qq_38146131的博客 8621

SQL Server Management Studio导出为Excel超详细操作

SQL Server Management Studio 2024导出为Excel

NCU_STU的博客 3537

从Excel读取数据,并把数据更新到MySQL数据库的表中

从Excel读取数据,并把数据更新到MySQL数据库的表中 未更新前的表 一、建立转换并保存,在DB连接中选择共享数据库 二、Excel输入 最后点击确定 三、更新 四、启动,并查看结果 ...

ssf_2802的博客 3415

【HDR】曝光融合(Exposure Fusion)

在曝光融合(Exposure Fusion)算法问世之前,多曝光序列合成用于显示的HDR需要两个步骤,第一步是将多张不同曝光的低动态范围图像合成为HDR(例如Debevec提出的加权融合方法),通常HDR为12bit或者16bit;第二步是通过tonemapping对高动态范围HDR进行压缩以支持低动态范围显示设备(例如Durand提出的基于双边滤波的tonemapping算法),一般会压缩至8bit。

专注人工智能,主攻CV 1万+

在线SQL转Excel(xls/xlsx)工具

在线SQL转Excel(xls/xlsx)工具https://toolgg.com/sql-to-excel.html

Linux,Java,SpringBoot,Python,Lua略知一点 1906

Upwork入门指南:如何创建吸引人的个人资料

本文详细介绍了如何在Upwork上创建并优化个人资料,帮助自由职业者吸引更多客户。内容包括: 注册与验证:从注册账号到邮箱验证的完整步骤。 个人资料填写:如何撰写吸引人的标题、简介,选择技能标签,以及设置专业头像和费率。 作品集与优化:上传高质量作品集,提升搜索排名和客户信任度。 常见问题解答:解决新手常见问题,如无工作经验或审核不通过。 通过本文的指导,你将学会打造一个专业且高效的个人资料,为在Upwork上获得更多机会奠定基础。

qq_61813593的博客 3517

Python连接Mysql数据库并从Mysql数据库中读取数据存入excel文件中

0.环境准备及介绍 操作系统:Windows10 Python版本:Python 3.7.2 工具:Pycharm专业版 依赖第三方库: pymysql(连接数据库) openpyxl(操作excel表) 1.Python 连接MySQL数据库 以下代码为连接数据库基本代码,代码实现了查询当前数据库下所有表,具体每行代码什么意思请详细阅读代码后面的注释 import pymysql # ...

林仔520的博客 3446

ESP8266红外控制美的空调:从协议解析到Home Assistant集成

红外遥控技术作为一种经典的非接触式控制方式,其原理是通过红外发光二极管发射经过特定频率调制的光信号来传递指令。在物联网和智能家居领域,利用微控制器如ESP8266模拟红外信号,成为将传统家电接入智能生态系统的关键技术。这项技术通过精准解析和生成符合设备厂商私有协议的红外编码,实现了对空调、电视等设备的远程与自动化控制,具有很高的实用价值。本文聚焦于美的空调的红外协议,深入探讨了其脉冲宽度调制(PWM)和全量式编码的特点,并提供了基于ESP8266的完整解决方案,包括硬件连接、库函数API详解以及如何将其无缝

weixin_30718391的博客 402

告别Inspect!用微软官方推荐的Accessibility Insights搞定WinApp自动化测试元素定位

本文介绍了如何从传统的Inspect工具升级到微软官方推荐的Accessibility Insights for Windows,以提升Windows应用自动化测试中的元素定位效率。通过详细的功能对比、安装指南和实战技巧,帮助测试工程师掌握这款现代化工具的核心优势,包括实时元素检测、属性筛选和与WinAppDriver、Appium等测试框架的无缝集成。

weixin_26749245的博客 622

java 数据库生成excel文件怎么打开_java 读取数据库数据生成excel文件

Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该 API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、 Servlet来调用API实现对Excel数据表的访问。提供以下功能:* 从Excel 95、97、20...

weixin_42510243的博客 272

裸眼3D技术发展与应用前景

这项技术利用传感器或摄像头实时监测观众的位置和视角,然后根据观众的位置信息动态调整投射的图像,确保不同位置的观众都能看到一致的3D效果。这种技术不仅可以在电影院和家庭影院中应用,还可以用于虚拟现实设备和大型展览等领域。裸眼3D呈现是一种不需要佩戴任何特殊设备(如3D眼镜或头盔)即可观看到3D效果的技术。这种技术近年来得到了快速发展,为观众带来了更加沉浸式的视觉体验。总之,裸眼3D呈现技术的发展为观众带来了更加真实、沉浸式的视觉体验。随着技术的不断进步和创新,相信未来裸眼3D将会在更多领域得到应用和推广。

学无止境 1997

通过Excel读取数据,并将数据存至数据库

通过读取Excel内容,将内容先存至list集合,再将list集合内容循环遍历存至数据库。 具体实现如下: /** * 查询指定目录中电子表格中所有的数据 * @param file 文件完整路径 * @return * @throws IOException * @throws BiffException */ pub...

qq_43137849的博客 3291

【原理图PCB专题】Allegro模块化移动器件报...has the LOCKED property怎么解锁?

正常来说做好一个模块化,如果不需要再动,最好还是lock,防止不明白的工程师异动导致问题。如果复用布局设计时,因为有些器件和拓扑并不完全一致,那需要调整部分器件,被锁之后只能全选,无法修改。所以解开锁定后,就能正常编辑了。

一点硬件 2391

YOLOv8 智能交通流量监测完整解决方案

YOLOv8智能交通流量监测系统基于先进的目标检测技术,提供实时车辆识别与统计分析功能。该系统通过虚拟检测线实现多方向车流量统计,支持多种车辆类型分类,并具备数据可视化、异常事件预警等核心功能。完整解决方案包含模型训练、实时检测、批量处理、结果分析等模块,并提供Flask API和Docker两种部署方案。系统采用YOLOv8算法实现高效检测,支持GPU加速,可通过量化、剪枝等技术进一步优化性能,为智能交通管理提供可靠的数据支持和技术保障。

u010117029的博客 118

Excel写进Oracle数据库以及从oracle数据库读取数据到Excel

db.java(这个是连接数据库的文件)package com.test; import java.sql.*; public class DB { private static DB db;// 保证整个系统中只存在DB的一个对象db static {// 当使用该类时首先执行static中的语句 try {

missluplease的博客 1343

YOLOv11改进 | 细节涨点篇 | DySample一种最新的轻量化动态上采样算子(效果完爆CARAFE)

本文给大家带来的最新改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子),

Snu77的博客 4210

django实现读取数据导出生成excel表格

使用django读取表数据并导出生成到excel表格中

分享一点有用的知识 3852

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java怎样从Excel文件中读取数据

用Java怎样从Excel文件中读取数据 package cn.com.spaceware.lixun;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;

cool_rain_man的专栏 2906

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

下一篇: 关于论坛上那个SQL微软面试题。我的解答方法 :-)
hydnoahark
博客等级 码龄26年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值