首页
学习
活动
专区
圈层
工具
发布

《Python for Excel》读书笔记连载1:为什么为Excel选择Python?

当你每天花费很多时间手动更新Excel工作簿,或者经常处理涉及到财务或者重要任务的工作簿时,你应该学习如何使用编程语言使流程自动化。...开始时微软并没有在Excel上领先,他们发布的Multiplan,一个电子表格程序,可以在MS-DOS和其他一些操作系统上使用,但不能在Windows上使用。...如果编写VBA,最常见的可重用代码是函数。例如,通过函数可以从多个宏访问同一代码块。如果你有多个一直在使用的函数,可能希望在工作簿之间共享它们。...跨工作簿共享VBA代码的标准工具是加载宏,但VBA加载宏缺乏一种可靠的分发和更新方式。...虽然Microsoft引入了Excel网络加载宏商店来解决该问题,但这只适用于基于JavaScript的加载宏,因此VBA编码人员没有选择。这意味着在VBA中使用复制/粘贴方法仍然非常常见。

7.1K20

从零开始学PostgreSQL (十一):并发控制

在此级别下,一个查询仅能看到在查询开始前已提交的数据,不会看到未提交的变化或查询期间并发事务的更改。 查询内部可以看到其所在事务中先前执行的更新效果,即使这些更新尚未提交。...防止死锁的最佳策略 通常,避免死锁的最好防御措施是确保所有使用数据库的应用程序以一致的顺序获取多个对象上的锁。在上面的例子中,如果两个事务都按照相同的顺序更新行,就不会发生死锁。...例如,在银行应用程序中,可能希望检查一个表中的所有贷方总额等于另一表中的借方总额,当两个表都在积极更新时,简单比较两个连续命令的结果在读已提交模式下不可靠。...如果可重复读事务本身在尝试进行一致性检查前应用了一些更改,检查的有用性更加值得商榷,因为它包含了部分而非全部的事务开始后的更改。...注意事项 MVCC与DDL命令: 在PostgreSQL中,TRUNCATE和重写形式的ALTER TABLE命令在提交后,可能会让使用旧快照的并发事务看到目标表为空,但仅限于那些在DDL操作开始前没有访问过该表的事务

96510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PostgreSQL 13.0-13.15 功能更新和bug fixed列表

    pg13.0 不在支持create extension from 选项 PG13.0 修复pageinspect 中的bt_metap()内存移除的问题 PG13.0 允许在分区表中使用整行变量(即,...我们此前曾尝试使它们跟踪变量所引用的FROM条目上已应用的任何列别名。但这在语义上是可疑的,因为实际上变量的输出根本不是它所声称的复合类型。...正在修改该页面,那么更新命令需要再次清除该位;但一些代码路径未能做到这一点,最终导致PANIC退出和数据库重新启动 PG13.9 修复VACUUM,如果尝试删除B-tree索引中的页面失败无法找到页面的父链接...因此,复制使用者的失败可能导致目录无限增大。 PG13.10 修复逻辑解码中未初始化内存使用,在某些情况下,逻辑解码的恢复可能会尝试重新使用已经被释放的XID数据,导致行为不可预测。...PG13.12 修复在所有分区被附加后标记分区索引为有效时可能出现的失败,在更新索引的pg_index条目时,可能会使用其他列的过时数据。一种报告的症状是“尝试更新不可见元组”错误。

    2K10

    Excel编程周末速成班第24课:调试和发布应用程序

    由于实际上存在无限数量的潜在bug,因此无法列出或描述Excel程序中可能出现的错误。以这种方式思考——程序应该做的任何事情都可能做错。 虽然VBA会向你报告错误,但没有对于bug的处理机制。...该语句生效时,必须显式声明程序中的每个变量。如果尝试使用未声明的变量,则VBA会显示一条错误消息。这样可以防止漏掉拼写错误的变量名。...一个或多个变量取不正确的值。 VBA的调试工具旨在跟踪这两种bugs的原因。 断点 在VBA编辑器中,可以在任何代码行上设置断点。...跳转命令 VBA在断点处停止后,通常需要继续执行程序。有几种选择,如表24-1所示。 表24-1:在中断模式下执行命令 ? VBA的跳转命令的使用取决于调试会话的详细信息。...注:本文是在知识星球App的完美Excel社群中发表的Excel VBA编程系列文章中的一篇,这些文章正陆续更新中,近期会全部更新完成。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    7.8K10

    Active APT

    接下来,它使用特殊选项/altvba 重新启动 Outlook,该选项会加载 Gamaredon VBA 项目。...未混淆版本中的 CodeBuilder 函数 此 .NET 模块首先通过修改以下注册表值来减少各种文档类型的 Office 宏安全设置: HKCU\Software\Microsoft\Office\更新 有趣的是,Palo Alto Networks 2017 年关于 Gamaredon 的博文中描述的一些自定义工具今天仍在更新和使用中。...第一个版本没有任何混淆的迹象;然后开发人员添加了不同的字符串混淆和垃圾代码,使分析更加困难。 在持久性方面,使用了几种不同的技术,但最常见的是计划任务、自动运行注册表项和利用 Startup 文件夹。...尽管这些技术非常简单并且早已为人所知,但 Gamaredon 小组试图在每个系统上安装多个脚本和可执行文件并不断更新它们的策略,使防御者的生活大大复杂化。

    10.2K00

    「数据管理」顶级数据库管理系统供应商

    对于需要模块化解决方案的客户,Oracle的开放式体系结构和多个操作系统选项提供了来自堆栈每一层中同类最佳产品的无与伦比的好处。这允许客户为其企业构建尽可能优化的基础架构。...使开发人员和数据科学家能够第一次使用Db2数据构建AI应用程序。这些驱动程序现在可以在GitHub上使用。...窗体和报表中使用的可视化对象在VBA编程环境中公开它们的方法和属性,VBA代码模块可以声明和调用Windows操作系统操作。...NET或Visual Studio .NET将对其表和查询使用Microsoft Access数据库格式。...容错:自动将数据复制到多个节点以实现容错。支持跨多个数据中心的复制。失败的节点可以替换为没有停机时间。

    2K11

    Jupyter Notebooks嵌入Excel并使用Python替代VBA宏

    PyXLL使我们可以将Python集成到Excel中,并使用Python代替VBA。...在本文的其余部分,我将向你展示如何: 使用Jupyter笔记本在Excel和Python之间共享数据 在笔记本上写Excel工作表函数(udf) 脚本Excel与Python代替VBA 从Excel获取数据到...这用于在使用Python函数构建的Excel中构建模型,这些函数当然可以使用其他Python库(例如pandas和scipy)。 你也可以在Jupyter笔记本中编写Excel工作表函数。...在Excel中使用Python而不是VBA的脚本 你是否知道在VBA中可以执行的所有操作也可以在Python中完成?编写VBA时将使用Excel对象模型,但是Python也提供相同的API。...在Excel中运行Jupyter笔记本也使一切变得更加便捷! 使用PyXLL的xl_app函数获取“ Excel.Application”对象,该对象等效于VBA中的Application对象。

    7.7K20

    SQL命令 UPDATE(一)

    描述 UPDATE命令更改表中列的现有值。 可以直接更新表中的数据,也可以通过视图进行更新,或者使用括在括号中的子查询进行更新。...请参阅定义和使用类的其他持久化类选项章节中READONLY对象的描述。 该表不能被其他进程以EXCLUSIVE模式锁定。...在极少数情况下,使用%NOLOCK的UPDATE找到要更新的行,但随后该行立即被另一个进程删除; 这种情况将导致SQLCODE -109错误:无法找到为UPDATE指定的行。...尝试使用与VALUELIST值不匹配的数据值进行更新会导致SQLCODE -105字段值验证失败错误。 数字以规范形式插入,但可以用前导零和尾随零以及多个前导符号来指定。...使用不带列列表的VALUES关键字,指定下标数组,其中数字下标对应列号,包括在列计数中不可更新的RowID作为列号1。

    3.7K20

    MySQL OCP试题解析(8)

    冷备份需要数据库完全停止服务,而此命令使用了 --single-transaction,通过事务快照实现热备份(Hot Backup),允许数据库在备份过程中继续处理读写操作。...若存在 MyISAM 表,备份过程中可能因其他写入操作导致数据不一致。 D) 使用 READ COMMITTED 事务隔离级别 错误。...选项解析 A) Firewall_access_denied 是被禁止主机的连接尝试次数 错误。...在 DETECTING 模式下,防火墙会记录可疑语句(通过 Firewall_access_suspicious),但 Firewall_cached_entries 专门用于统计白名单中的条目数。...但选项 A 的描述未明确是否参数化,需结合题意判断是否为陷阱选项。 B) 使用预处理语句(Prepared Statements) 错误。

    27710

    SQL命令 DELETE(一)

    尝试这样做会导致SQLCODE-35,其中不允许基于带有CHECK选项条件的切片表的视图(sample.myview)使用%msg INSERT/UPDATE/DELETE。...它可以指定一个或多个表。它支持SELECT语句可用的所有FROM子句语法,包括联接语法和优化选项关键字。此FROM子句通常(但不总是)与WHERE子句一起使用。...失败的删除操作可能会使数据库处于不一致的状态,其中一些指定的行已删除,另一些未删除。...自动锁升级的潜在后果是,当升级到表锁的尝试与持有该表中的记录锁的另一个进程冲突时,可能会发生死锁情况。有几种可能的策略可以避免这种情况:(1)提高锁升级阈值,使锁升级不太可能在事务内发生。...(2)大幅降低锁升级阈值,使锁升级几乎立即发生,从而降低其他进程锁定同一表中记录的机会。(3)在事务期间应用表锁,不要执行记录锁。

    3.5K20

    clickhouse表引擎megerTree

    可以在列表中指定多个规则,但最多只能有一个DELETE的规则。...min_compress_block_size - 在数据压缩写入表前,未压缩数据块的最小大小。您可以在全局设置中设置该值(参见min_compress_block_size)。...= 1 NOT startsWith(s, 'test') 并发数据访问 对于表的并发访问,我们使用多版本机制。换言之,当一张表同时被读和更新时,数据从当前查询到的一组片段中读取。没有冗长的的锁。...如果某列不是GROUP BY表达式的一部分,也没有在SET从句显示引用,结果行中相应列的值是随机的(就好像使用了any函数)。...使用多个块设备进行数据存储 介绍 MergeTree 系列表引擎可以将数据存储在多个块设备上。这对某些可以潜在被划分为“冷”“热”的表来说是很有用的。最新数据被定期的查询但只需要很小的空间。

    2.4K20

    MySQL8 中文参考(二十六)

    SHOW CREATE USER的输出指示账户是锁定还是未锁定。 如果客户端尝试连接到一个被锁定的账户,连接尝试将失败。...只有修改数据库或表的语句才计入更新限制。 在这种情况下,“帐户”对应于mysql.user系统表中的一行。也就是说,连接根据适用于连接的user表行中的User和Host值进行评估。...“拒绝访问”错误消息告诉您尝试登录的用户、您尝试连接的客户端主机以及是否使用了密码。通常,您应该在user表中有一行与错误消息中给定的主机名和用户名完全匹配。...如果尝试连接时指定了主机名,但出现未显示主机名或为 IP 地址的错误消息,则表示 MySQL 服务器在尝试将客户端主机的 IP 地址解析为名称时出现错误: $> mysqladmin -u root -...如果没有匹配的缓存条目,插件会尝试根据mysql.user系统表中的凭证验证客户端。如果成功,caching_sha2_password会为客户端添加一个条目到哈希中。否则,认证失败并拒绝连接。

    1.2K10

    Workbook工作簿对象方法(一)

    ,add方法不加参数时,excel创建新的空工作簿,自动将工作簿命名为“BookN”,其中N为顺次的数字,(可以通过application对象的SheetInNewWorkbook属性来调整新建工作簿中工作表的数量...新工作簿名在模板工作簿名的后面加有规律的数字。 3、如果参数是指定的常量,则可以用来创建指定格式的excel文件。常量名称值对应格式如下表,了解下即可,平时通常使用工作表常量。...(此处用了with语句,可以方便增加其他属性的更改。) 二、工作簿对象open方法 在使用EXCLE文件时,在VBA代码中打开工作簿是通过workbooks集合的open方法。...Sub test() Workbooks.Open Filename:="D:\VBA示例.xlsm" End Sub 代码中filename参数后用 := ,加excel完整路径,路径需要用英文引号。...Not wb1 Is Nothing Then MsgBox "指定Excel文件已打开" Else MsgBox "指定Excel文件未打开" End If End Sub 在代码中通过

    7.5K40

    拒绝停服,随时回退:MS SQL 到 PostgreSQL 的无缝数据库双向迁移方案

    因为即便字段类型在 MS SQL 和 PostgreSQL 中名称相同,若精度存在差异,也可能导致主键匹配失败。...在 MS SQL 中,DATETIME2 默认使用 7 位精度(即 0.0000001 秒,0.1 微秒),但用户可以通过 DATETIME2(n) 指定精度范围为 0 到 7 位。...TapData 原生支持该功能,用户仅需在配置中启用相关选项,系统会自动在目标表中添加并维护 hashkey 字段,无需手动建表或脚本干预。...需要注意的是,MSSQL 中也支持更灵活的 SEQUENCE 机制用于生成唯一值,某些场景下可作为 IDENTITY 的替代。但本项目中未使用 SEQUENCE,因此不做展开说明。...这种并发机制虽然提升了性能,但若目标数据库中启用了外键约束,就可能因为某些表写入先后顺序不一致而触发外键校验失败,从而导致写入失败。

    44010

    探索VBA代码编辑器——《Excel VBA宏编程》系列讲座2

    单击“文件——选项”,在“Excel选项”对话框中,选择左侧的“自定义功能区”,在“主选项卡”中,找到并选取“开发工具”前的复选框,如下图2所示。 图2 “开发工具”选项卡出现了,如下图3所示。...图3 看看VBA代码编辑器 单击Excel功能区“开发工具”选项卡“代码”组中的“VisualBasic”,或者直接使用Alt+F11组合键,都可以打开VBA代码编辑器。如下图4所示。...当你添加或删除工作簿或工作表时,这个树状结构会相应地变化。你也可以添加标准模块、类模块和用户窗体,此时该树状结构会相应更新。...但这些并不是Excel中唯一的对象,但简单地看一下工程资源管理器,它们就是这里显示的对象。 代码窗口 在工程资源管理器中,双击ThisWorkbook,将打开该Workbook对象的代码窗口。...图12 保存包含VBA代码的工作簿 在保存含有VBA代码的工作簿时,我们需要使用xlsm扩展名,如下图13所示,否则Excel会自动删除代码。

    4.9K20

    CDP中的Hive3系列之管理Hive

    为事务配置分区 您设置了几个参数,以防止或允许动态分区,即在表上隐式创建的分区中插入、更新或删除数据。...详细信息会打印到 Metastore 日志中。 成功 Attempted - 发起者试图安排一个压缩,但失败了。详细信息会打印到 Metastore 日志中。...此设置使 Tez SplitGrouper 能够根据存储桶编号对拆分进行分组,以便同一存储桶编号的不同存储桶文件中的所有行在压缩后都可以在同一个存储桶文件中结束。...选择“none”选项指定仅使用本机矢量化 UDF 的查询被矢量化。选择“选择”选项指定 Hive 选择使用矢量化适配器基于性能优势对 UDF 的子集进行矢量化。...HiveServer 尝试在关闭期间清除 Tez 池中的会话。堆栈跟踪日志中的“应用程序未运行”消息不是问题。此消息只是在会话关闭或重新启动且 AM 超时时记录的跟踪。

    2.9K30

    号外!!!MySQL 8.0.24 发布

    该 AUTOEXTEND_SIZE选项在MySQL 8.0.23中引入,它定义了InnoDB 当表空间变满时扩展表空间大小的数量。...(缺陷#32530147) InnoDB: 修改生成的列的事务的回滚会引发断言失败。尝试释放外部存储的列占用的空间时发生故障。包含外部存储的列的更新向量未考虑生成的列。...(缺陷#32333168) InnoDB: 在Windows上,使用COMPRESSION选项创建表时 ,InnoDB 在检查由同一系统调用设置的打孔支持标志之前,无法检查系统调用的错误状态,从而导致读取未初始化的标志...由于innodb_validate_tablespace_paths 在施主实例上禁用了变量,因此未克隆表空间 ,这导致未加载关联的表空间对象。现在在克隆操作之前执行检查以确保所有表空间对象都已加载。...这也可以正确地处理表中的行应使两个或多个单独的实现无效的情况,其中一些在连接内,而某些更高。

    4.7K20

    MySQL 死锁 Debug 日志:订单系统 update 死锁的排查与解决方案

    问题与技术环境 线上订单系统在高并发下单场景中,曾出现偶发的 update 操作超时问题。这类问题在峰值流量时段尤为明显,表现为部分订单状态更新延迟甚至失败,直接影响用户支付体验与系统稳定性。...用户可能遇到支付后订单状态未更新、提交订单后显示 “系统繁忙” 等问题,部分订单甚至会被重复创建或支付失败。...=1001;(持有订单表行锁) 尝试更新库存表 UPDATE inventory SET stock=stock-1 WHERE product_id=501;(等待库存表行锁) 事务 2: 更新库存表...)或 key 字段为 NULL(未使用索引),需优先优化索引设计,避免无索引更新导致的表级锁竞争 1 。...在订单系统中,我们曾遇到这样的案例:原订单状态更新事务包含 “修改订单状态 + 发送物流通知 + 记录操作日志” 三个步骤,整个事务锁持有时间长达 500ms。

    43910

    SQL命令 INSERT(三)

    请注意,此错误是在编译时发出的,而不是在执行时发出的。 如果通过视图更新表,则不能将该视图定义为只读。尝试这样做会导致SQLCODE-35错误。...数字以规范形式插入,但可以使用前导和尾随零以及多个前导符号指定。但是,在SQL中,两个连续的减号被解析为单行注释指示符。因此,尝试使用两个连续的前导减号指定一个数字会导致SQLCODE-12错误。...INSERT操作失败可能会使数据库处于不一致的状态,一些指定的行被插入,而一些未插入。...分片表始终没有自动事务模式,这意味着对分片表的所有插入、更新和删除都是在事务范围之外执行的。...Microsoft Access 要使用INSERT通过Microsoft Access将数据添加到 IRIS表格中,请将表格RowID字段标记为专用,或者在一个或多个附加字段上定义唯一索引。

    3.2K10

    一篇文章彻底搞懂Mysql事务相关原理

    为了使在多个粒度级别上的锁定变得切实可行,请InnoDB使用 意图锁定。意向锁是表级锁,指示事务稍后对表中的行需要哪种类型的锁(共享锁或排他锁)。...一次尝试可能导致释放零个或多个记录锁,因为单个结构中可能存在零个或多个记录锁。 lock_rec_grant_attempts 授予记录锁定的尝试次数。一次尝试可能会导致授予零个或多个记录锁。...当事务锁定多个表中的行(通过诸如UPDATE或的 语句SELECT ... FOR UPDATE)但顺序相反时,可能会发生死锁 。...如果使用innodb_deadlock_detect 配置选项禁用了死锁检测,则 在死锁的情况下InnoDB依靠该 innodb_lock_wait_timeout设置回滚事务。...FOR SHARE),请尝试使用较低的隔离级别,例如 READ COMMITTED。 修改事务中的多个表或同一表中的不同行集时,每次都要以一致的顺序执行这些操作。

    1.1K10
    领券