GVKun编程网logo

使用Python在Excel(.xlsx)中查找和替换字符串(python excel 查找替换)

16

此处将为大家介绍关于使用Python在Excel的详细内容,并且为您解答有关.xlsx中查找和替换字符串的相关问题,此外,我们还将为您介绍关于c#–如何使用EPPlus在Excel文件(.XLSX)中

此处将为大家介绍关于使用Python在Excel的详细内容,并且为您解答有关.xlsx中查找和替换字符串的相关问题,此外,我们还将为您介绍关于c# – 如何使用EPPlus在Excel文件(.XLSX)中查找数据范围?、Creating Excel files with Python and XlsxWriter(通过 Python和XlsxWriter来创建Excel文件(xlsx格式))、Excel VBA - 如何查找和替换 30k 字符串上的单引号?、Excel中的xls、xlsx、xlsm混合文件,看我用Python如何统一处理......的有用信息。

本文目录一览:

使用Python在Excel(.xlsx)中查找和替换字符串(python excel 查找替换)

使用Python在Excel(.xlsx)中查找和替换字符串(python excel 查找替换)

我正在尝试替换.xlsx工作表中的一堆字符串(〜70k行,38列)。我有一个要搜索和替换为文件的字符串列表,格式如下:

bird produk - bird productpig - porkayam - chicken...kuda - horse

要搜索的词在左侧,而替换词在右侧(找到“ bird produk”,替换为“ bird product”。我的.xlsx工作表如下所示:-

name     type of animal     IDali      pig                3483abu      kuda               3940ahmad    bird produk        0399...ahchong  pig                2311

我正在寻找最快的解决方案,因为列表中大约有200个单词要搜索,并且.xlsx文件很大。我需要为此使用Python,但是我愿意接受其他任何更快的解决方案。

编辑:-添加工作表示例

Edit2:-尝试了一些python代码来读取单元格,花费了很长时间。有指针吗?

from xlrd import open_workbookwb = open_workbook(''test.xlsx'')for s in wb.sheets():    print (''Sheet:'',s.name)    for row in range(s.nrows):        values = []        for col in range(s.ncols):            print(s.cell(row,col).value)

谢谢!

Edit3:-我终于想通了。 VBA模块和Python代码都可以使用。我改用.csv来简化事情。谢谢!这是我的Python代码版本:-

import csv###### our dictionary with our key:values. ######reps = {    ''JUALAN (PRODUK SHJ)'' : ''SALE( PRODUCT)'',    ''PAMERAN'' : ''EXHIBITION'',    ''PEMBIAKAN'' : ''BREEDING'',    ''UNGGAS'' : ''POULTRY''}def replace_all(text, dic):    for i, j in reps.items():        text = text.replace(i, j)    return textwith open(''test.csv'',''r'') as f:    text=f.read()    text=replace_all(text,reps)with open(''file2.csv'',''w'') as w:    w.write(text)

答案1

小编典典

我会将您的文本文件的内容复制到excel文件中的新工作表中,并将该工作表命名为“ Lookup”。然后使用文本列,以获取该新表的前两列中从第一行开始的数据。

将以下代码粘贴到Excel中的模块中并运行它:

Sub Replacer()    Dim w1 As Worksheet    Dim w2 As Worksheet    ''The sheet with the words from the text file:    Set w1 = ThisWorkbook.Sheets("Lookup")    ''The sheet with all of the data:    Set w2 = ThisWorkbook.Sheets("Data")    For i = 1 To w1.Range("A1").CurrentRegion.Rows.Count        w2.Cells.Replace What:=w1.Cells(i, 1), Replacement:=w1.Cells(i, 2), LookAt:=xlPart, _        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _        ReplaceFormat:=False    Next iEnd Sub

c# – 如何使用EPPlus在Excel文件(.XLSX)中查找数据范围?

c# – 如何使用EPPlus在Excel文件(.XLSX)中查找数据范围?

给定Excel电子表格,如何查找数据范围?有没有我可以打电话的方法或我可以检查的财产?我是否需要逐个单元格检查空值然后逐行检查?必须有一个更简单的方法,对吗?

我今天早上刚刚下载了EPPlus库,所以我可能会忽略一些基本的东西.我还检查了示例项目,但没有看到与此问题相关的任何内容.

谢谢!

解决方法

使用Excel对象模型,您将使用 Worksheet.UsedRange.

使用EPPlus,您将使用WorkSheet.Dimensions.Start.Row / End.Row / Start.Column / End.Column.

Creating Excel files with Python and XlsxWriter(通过 Python和XlsxWriter来创建Excel文件(xlsx格式))

Creating Excel files with Python and XlsxWriter(通过 Python和XlsxWriter来创建Excel文件(xlsx格式))

以下所有内容翻译至: https://xlsxwriter.readthedocs.io/

#-------------------------------------------------------------------------------------------------------------------------------

XlsxWriter 是一个用来创建Excel XLSX 文件的Python 模块。

demo:

demo 代码:

###################################################################################

##############################################################################
#
# A simple example of some of the features of the XlsxWriter Python module.
#
# Copyright 2013-2018, John McNamara, jmcnamara@cpan.org # import xlsxwriter #导入xlsxwriter模块 # Create an new Excel file and add a worksheet. #创建一个新的工作簿和工作表 workbook = xlsxwriter.Workbook(''demo.xlsx'') worksheet = workbook.add_worksheet() # Widen the first column to make the text clearer. #设置第一列的宽度 worksheet.set_column(''A:A'', 20) # Add a bold format to use to highlight cells. #定义加粗的格式 bold = workbook.add_format({''bold'': True}) # Write some simple text. #用‘A1’等表达方式在单元格中写入简单的文本 worksheet.write(''A1'', ''Hello'') # Text with formatting. #在单元格中写入文本的同时设置格式 worksheet.write(''A2'', ''World'', bold) # Write some numbers, with row/column notation. #用行列号的表达方式(从00开始)在单元格写入数值 worksheet.write(2, 0, 123) worksheet.write(3, 0, 123.456) # Insert an image. #在单元格中插入图片 worksheet.insert_image(''B5'', ''logo.png'') workbook.close() #关闭工作簿,只有关闭工作簿,文档才会最终显示;

#################################################################################################################

 XlsxWriter

XlsxWriter 是一个Python模块,用这个模块可以实现在2007以上版本的exel格式为xlsx的文件中添加多个工作表并且可以插入文本,数字,公式,超链接等。它支持例如格式等很多功能,包含如下:

      100% 和excel xlsx 文件兼容;

  支持所有格式;

  支持合并单元格;

  定义名字;

  图表;

  筛选;

  数据验证和下拉列表;

  条件格式;

  工作表插入PNG/JPEG/GMP/WMF/WMF 图片;

  富文本格式字符串;

  单元格注释;

  文本框组件;

  联合Pndas模块;

  写入大文件时支持记忆优化模式;

它支持Python 2.5,2.6,2.7,3.1,3.2,3.3,3.4,3.5,3.6等版本,Jython和PyPy 只使用标准库。

 

这个文件解释了怎么使用xlsxwrite 模块,阅读下面的章节来了解更多内容,或者直接跳到 Introduction。

  •  Content
  •  Introduction
  •  Getting Started with XlsxWriter
  • ---------------------------------------------------------------------------------
  •  Tutorial 1: Create a simple XLSX file
  •  Tutorial 2: Adding formatting to the XLSX file
  •  Tutorial 3:Writting different types of data to the XLSX file
  • --------------------------------------------------------------------------------
  •  The Workbook Class
  •  The Worksheet Class
  •  The Worbook Class(Page Setup)
  •  The Format Class
  •  The Chart Class
  •  The Chartsheet Class
  •  The Exceptions Class
  •   ------------------------------------------------------------------------------
  •  Working with Cell Notation
  •  Working with Formulas
  •  Working with Dates and Times
  •  Working with Colors 
  •  Working with Charts
  •  Working with Autofilters
  •  Working with Data Validation
  •  Working with Conditional Formatting
  •  Working with Worksheet Tables
  •  Working with Textboxes
  •  Working with Sparklines
  •  Working with Cell Comments
  •  Working with Outlines and Grouping
  •  Working with Memory and Performance
  •  Working with VBA Macros
  •  Working with Python Pandas and XlsxWriter
  • ----------------------------------------------------------------------------------
  •  Examples
  • ----------------------------------------------------------------------------------
  •  Chart Examples
  • ----------------------------------------------------------------------------------
  •  Pandas with XlsxWriter Examples
  • ----------------------------------------------------------------------------------
  •  Alternative modules for handing Excel files
  •  Libraries that use or enhance XlsxWriter
  •  Known Issues and Bugs
  •  Reporting Bugs
  •  Frequently Asked Questions
  •  Changes in XlsxWriter
  •  Author 
  •  License

  

Excel VBA - 如何查找和替换 30k 字符串上的单引号?

Excel VBA - 如何查找和替换 30k 字符串上的单引号?

如何解决Excel VBA - 如何查找和替换 30k 字符串上的单引号??

我正在尝试在 excel 中进行查找和替换,但 excel 没有找到任何内容,我认为这是由于字符数量过多,因为有些字符大约有 30,000 个,例如找到不要并替换为不要.

我想将此数据插入到 sql 中,这就是我尝试删除所有单引号的原因,查找和替换中有许多 Q 和 A,但我找不到任何适用于我的数据的字符数的内容.

我在 VBA 方面很糟糕,所以除了下面不起作用的代码之外,我真的没有任何代码可以分享。

Selection.Replace What:="''",Replacement:="",LookAt:=xlPart,_
        SearchOrder:=xlByRows,MatchCase:=False,SearchFormat:=False,_
        ReplaceFormat:=False

解决方法

感谢@Naresh 回答了这个问题。

Sub FindString()
Dim c As Range
Dim firstAddress As String
With Worksheets(1).Range("A1:a10")
    Set c = .Find("''",LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            c.Value = Replace(c.Value,"''","quotechanged")
            Set c = .FindNext(c)
        Loop While Not c Is Nothing
    End If
End With
End Sub

Excel中的xls、xlsx、xlsm混合文件,看我用Python如何统一处理......

Excel中的xls、xlsx、xlsm混合文件,看我用Python如何统一处理......

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

洞房昨夜停红烛,待晓堂前拜舅姑。 

引言

Python语言,近几年在办公自动化这一领域来说,真的超级火爆!用它做批量处理确实比VBA要方便很多。

前面的文章,我们已经讲述了如何将doc文件转换为docx文件,还没有观看的朋友直接戳此链接:

python-docx无法处理 “doc格式” 文件,于是我这样做......

今天黄同学再带大家探讨Python处理Excel文件时,遇到的一些问题。在Python中,有几个常用的库专门用来处理Excel文件,分别是xlrd、xlwt和openpyxl,简单介绍一下:

  • xlrd 只能读取数据,可以处理xls和xlsx;
  • xlwt 只能写数据,只能处理xls;
  • openpyxl 可以读数据和写数据,但只能处理xlsx;

如果待处理的文件,既有xls,又有xlsx时,我觉得还是将它们一并转换为统一格式,再进行二次修改,显得更为方便。

同时,这里还有一种Excel文件,就是xlsm格式,该表格文件却很少被其他库支持。这种情况下,如果我们电脑有安装微软的Excel软件(非wps),就可以通过调用本地excel软件对表格文件进行格式转换,然后我们再进行其它操作。

正文

再给代码之前,我仍然给大家讲述一些知识点,方便大家一读就会。

  • 上一篇文章,由于处理的是Word文档,因此这里 调用的是Word程序 ,那处理Excel文档,这里就需要 调用Excel程序 了;
  • 在Python中,文档用 Documents 表示,工作簿用 Workbooks 表示,因此处理不同的文件,我们需要调用不同的属性,打开对应的文件;
# 调用word程序
WordApp = win32com.client.Dispatch("Word.Application")
# 调用excel程序
WordApp = win32com.client.Dispatch("Excel.Application")

# 打开word文档
w.Documents.Open(path)
# 打开Excel工作簿
w.Workbooks.Open(path)

# 后台运行,不显示,不警告
WordApp.Visible = 0
WordApp.DisplayAlerts = 0

Excel文件的格式是最多的,这里我再给大家做一个总结,给你加深一下印象。

这里需要强调一下:后面的代码里,我们在使用SaveAs保存时,会用到一个FileFormat属性,其中:

  • FileFormat= 51 ,表示xlsx扩展文件;
  • FileFormat= 56 ,表示xls扩展文件;
  • FileFormat= 52 ,表示xlsm扩展文件;
  • FileFormat= 23 ,表示csv扩展文件;

好了,前期准备知识讲述完毕,这里直接给大家上代码。

import os
import time
import win32com
from win32com.client import Dispatch

def xls_xlsx(path):
   w = win32com.client.Dispatch(''Excel.Application'')
   w.Visible = 0
   w.DisplayAlerts = 0
   wb = w.Workbooks.Open(path)
   # 这里必须要绝对地址,保持和xls路径一致
   newpath = allpath+''\\转换后的文档.xlsx''

   wb.SaveAs(newpath,FileFormat = 51)
   # doc.Close() 开启则会删掉原来的dxls
   w.Quit()# 退出
   return newpath
allpath = os.getcwd()
print(allpath)
xls_xlsx(allpath+''\\转换前的文档.xls'')

最终结果:

本文讲述完毕,代码附有注释,相信大家可以看明白,一篇文章总要留给大家一点思考空间,这里就不再过多赘述。

------------------- End -------------------

往期精彩文章推荐:

  • 解决安装Pycharm后在C盘下生成大文件的问题

  • 一篇文章教会你使用Django根据现有数据库反向生成models

  • 手把手教你使用Django如何连接Mysql

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

本文分享自微信公众号 - Python爬虫与数据挖掘(crawler_python)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

关于使用Python在Excel.xlsx中查找和替换字符串的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于c# – 如何使用EPPlus在Excel文件(.XLSX)中查找数据范围?、Creating Excel files with Python and XlsxWriter(通过 Python和XlsxWriter来创建Excel文件(xlsx格式))、Excel VBA - 如何查找和替换 30k 字符串上的单引号?、Excel中的xls、xlsx、xlsm混合文件,看我用Python如何统一处理......等相关知识的信息别忘了在本站进行查找喔。

本文标签:

上一篇尝试从ubuntu crontab运行python脚本(ubuntu contains a file system)

下一篇Raspberry Pi RuntimeError:此GPIO通道已启用冲突边缘检测