Excel正则表达式,还是导出到Python?Python中的“Vlookup”?

2024-04-19 13:32:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一个Excel文件和一个包含人员记录的工作表。在

1。卫生部电话号码

其中一个字段是电话号码字段,其中包含格式为的电话号码,例如:

+XX(Y)ZZZZ-ZZZZ

(其中X、Y和Z是整数)。在

还有一些记录的位数较少,例如:

^{pr2}$

还有一些格式真的搞砸了:

+XX(Y)ZZZZ-ZZZZ / ZZZZ

或者:

ZZZZZZZZ

我们需要将这些都清理成以下格式:

0YZZZZZZZZ (or OYZZZZZZ with those with less digits).

2。填写主管详细信息

每个人也有一个主管,以数字标识的形式给出。我们需要进行查找以获得该主管的姓名和电子邮件地址,并将其添加到行中。在

这种查找将首先在同一个工作表上(即搜索本身),然后可以回退到另一个有更多人的工作簿。在

3。接近?

对于第一个问题,我考虑在Excel/VBA中使用regex来进行解析。我的超能力不是最好的,但我想我可以学…哈哈。这方面有什么特别的地方吗?在

然而,我是否可以更好地将XLS导出到CSV(例如使用xlrd),然后使用Python来修复电话号码?在

对于第二种方法,我想在Excel中使用vlookups,把数据拉进来,然后以某种方式让它失败,首先是搜索自身,然后是外部工作簿,然后输入错误的文本。不知道怎么做最后一部分。在

但是,如果我碰巧选择了导出到CSV并用Python完成,那么什么是完成vlookup的有效方法?(我应该转换成dict,还是只是迭代?或者有更好的,或者更惯用的方法吗?)在

干杯, 维克多


Tags: 文件csv方法人员格式with记录电话号码
2条回答

一般来说,避免使用Excel公式;使用xlrd提取所需的数据,然后忘记它来自Excel,使用Python操作数据。E、 解决xlrd/vlookup问题:最好的方法是从包含键和值的2列的相关部分创建一个字典。在

使用xlrd导出到CSV然后再读回它是浪费时间和丢失有价值的信息(比如Excel单元格中的实际数据类型)。如果你的数据在数据库中,你会把它导出到CSV并读回吗??在

如果你走VBA路线,看看Tushar Mehta's documentation可能会有好处。如果你走Python的路线,你可以尝试解析为CSV,或者,只是操作内存中的东西并通过XLWT编写(这是我的首选技术)。您也可以考虑直接使用COM调用修改Excel数据,基于this。最后,如果您致力于在Excel之外完成这项工作,您可以看看Jython和Apache POI。虽然不是最轻量级的解决方案,但POI是我所知的功能最齐全的库,它不依赖于在Windows上运行。在

正如其他人在评论中所观察到的,很难对如此宽泛的问题进行具体化。希望你能从这里开始。。。在

相关问题 更多 >