当前位置: 首页 > 网络应用技术

python读了多少行

时间:2023-03-08 02:17:33 网络应用技术

  简介:许多朋友询问与Python Saw Excel相关的几行。首席执行官在本文中注明将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  不超过100行

  最近,我想帮助正在做RA的姐姐编写合并Excel工作表的脚本...源数据为4000+ Excel工作表,这些工作表分布在9 XLSM文件中。提取的必需部分合并进入多个大桌子。

  查找工具

  确定任务后,第一步是找到一个可以正常工作的库。python excel列出了xlrd,xlwt,xlutils袋,但是

  它们年龄较大,XLWT甚至不支持07版本的Excel

  他们的文档不是很友好,他们可能需要阅读源代码,并且姐姐的任务相对紧张。此外,在此期间结束时,没有这个时间没有时间阅读源代码。

  再次搜索后,我找到了OpenPyXl并支持07+ Excel。有人一直被维护。这些文档清晰易读。请参阅教程和API文档以尽快开始,就是?

  安装

  这很容易,pip安装openpyxl,哈哈?

  因为我不需要处理图片,所以我不安装枕头。

  一些考虑

  源文件的大约一到2MB相对较小,因此可以将其直接读取到内存处理中。

  由于它正在处理Excel,更不用说整个小组显然是赢得工作(数据存储在业务商人中...

  此任务根本不需要我完全修改现有文档!囧...我只需要阅读,处理并编写另一个文件

  学习和使用

  好吧,只需打开CMD,然后使用Python的Shell播放此模块各种模块...(我没有在Win下安装Ipython,囧)

  从基本上我只需要这两件事,做这个小脚本

  从OpenPyXl导入workbook从OpenPyXl import load_workbook

  顾名思义,load_workbook将文件导入内存。工作簿是用于在内存中创建文件并最终编写磁盘的最基本类。

  工作

  首先,我需要导入此文件

  inwb = load_workbook(文件名)

  您得到的是一个工作簿对象

  然后我需要创建一个新文件

  OUTWB = Workbook()

  然后在这个新文件中,创建一些带有create_sheet的新工作表,例如

  CareerSheet = OUTWB.CREATE_SHEET(0,“职业”)

  它将从头部插入一个名为“职业”的工作表(即使用Python列表)

  接下来,我需要遍历输入文件中的每个工作表,并根据表名称执行一些作业(例如,如果表名不是数字,我不需要处理),OpenPyXl支持以通过表名称为字典,并获得一个以获取一个工作簿表名的方法的词语,为get_shed_names

  对于inwb.get_sheet_names()中的SheepName:如果不是SheetName.isdigit():继续

  sheet = inwb [sheetname]

  获得工作表后,它将通过列和行处理。OpenpyXl将根据工作表中的实际数据确定行和列的数量。获取行和列的方法是表格和表格。它们都可以像列表一样使用。例如,如果我想用少于2列跳过表,我可以写

  如果len(表格列)2:继续

  如果我想获得此工作手表的前两列,我可以写

  可乐,colorb = sheet.columns [:2]

  除了使用列和行以获取此工作表的排名外,您还可以使用Excel的单元格编码来获取区域,例如

  细胞=板['a1':'b20']

  有点像Excel自己的功能,您可以拔出两个维度区域?

  为了促进处理处理,当遇到没有C列的工作表时,我想创建一个空的C -columns,例如A列A,然后我可以使用Sheet.cell方法传递单元格数并通过传递通过单元号并添加空值。

  alen = len(可乐)在范围内(1,alen + 1):

  sheet.cell('c%s'%(i))。值=无

  注意:Excel的单位名称从1?开始

  还显示了上述代码,并且使用单元格的获取值为单元格(可以左右或右)。Excel文件还生成相应的数据类型。

  获得每个单元格的值后,您可以操作它?OpenPyXl将使用它与Unicode编码字符串,因此字符串全部在Unicode类型中。

  除了用单元格修改值。一个一个逐一的值,您还可以走到工作表上的一行附加行

  Sheet.Append(Stra,dateB,numc)

  最后,等待新文件编写,只需使用Workbook。直接保存。

  OUTWB.SAVE(“ test.xlsx”)

  这将涵盖当前文件,甚至您之前阅读的文件。

  一些值得关注的地方

  如果您想在列中遍历每个单元格时将当前单元格在此列对象中

  对于IDX,枚举(可乐)中的单元格:#做某事...

  为了防止获得的数据的两端(Excel文件中的公共坑)在两端的看不见空间,请记住strip()

  如果工作表中的单元格没有数据,则OpenPyXl将无需使其值无效,因此,如果要处理单元格的值,则不能提前假设它,最好使用它

  如果不是单元格。

  句子喜欢首先判断

  例如,如果要处理Excel文件中的噪声很多,例如,当您期望单元格是时间时,某些表数据可能是字符串。此时

  如果是isInstance(cell.value,unicode):中断

  句子,例如语句。

  WIN下的CMD似乎没有使用UTF-8设置代码页面。如果简化中文,则可以使用936(GBK)。打印时,它将自动从Unicode转换为GBK输出到终端。

  一些小型功能可以帮助解决中国问题

  我所处理的表具有超过GBK范围的一些字符。当我需要将一些信息比较以监视处理进度时,我可以忽略它。我可以使用该空间来替换它。我必须替换的某些分离器,我可以::

  #烦人的seperatorsdot = u'·'dash = u' - 'emph = u'?'dot2 = u'seps =(u'。

  用法:

  cleanString = get_clean_ch_string(chstring)“”“”“”“”

  cleanstring = sep中的sep的chstring:

  cleanstring = cleanstring.replace(sep,u'')返回清洁串

  此外,我还需要将英文名称[Space]中文名称分为英语姓氏,英文名称,中文姓氏和中文名称。

  首先,我需要能够分割英语和中文。我的方法是定期匹配,并遵循Unicode范围内常见的汉字范围。与英语和中文匹配的图案如下:如下:

  一-。%s]+'%(''.join(seps))

  英语被ASCII印刷字符取代。普通汉字的范围是一?。sep是以前超过GBK范围超过的一些字符。除了简单的细分外,我还需要处理唯一没有英文名称的中文名称,唯一没有中文名称的英语名称等。判断的逻辑是如下:

  def split_name(名称):“ split [英语名称,中文名称]。

  如果其中一个缺少,则不会返回。

  用法:

  endMe,chname = split_name(name)“”

  匹配= re.Match

  return matches.group(1).strip(),matches.group(2).strip()else:

  匹配= re.findall('(%s)'%(中文eptersn),名称)

  匹配='''。加入(比赛)。strip()如果匹配:#仅中文名称

  返回无,匹配其他:##仅英语名称

  匹配= re.findall('(%s)'%(asciipattern),name)return'.join(matches).strip(),无

  获得中文名称后,我需要将其分为姓氏和名称,因为任务要求不需要清楚地划分名称,因此我将根据普通的中文名称对其进行分配。这个词是姓氏。这四个字符的前两个单词是姓氏。具有名称区域的名称(少数民族的名称)是姓氏(在此处删除get_clean_ch_string函数以删除分隔符),并且名称更长。假设整个字符串命名为命名。(请注意英语的名字是指该名称,姓氏是指姓氏2333)

  def split_ch_name(chname):“”“将中文名称int名称和姓氏分开。

  *如果名称为xy或xyz,则x将返回为姓氏。

  *如果名称为wxyz,则WX将被命名为姓氏。

  *如果名称为... wxyz,将返回谁的名字

  作为姓氏。

  *如果名称为.. abc * xyz ...,Seperator之前的部分

  将作为姓氏返回。

  用法:

  chfirsname,chlastname = split_ch_name(chname)“”

  如果len(chname)4:#xy或xyz

  chlastname = chname [0]

  chfirstname = chname [1:] elif len(chname)== 4:#wxyz

  chlastname = chname [:2]

  chfirstname = chname [2:] else:#更长

  cleanname = get_clean_ch_string(chname)

  nameparts = cleanname.split()

  返回无,姓名[0]

  chlastname,chfirstname = nameparts [:2]#.. abc * xyz ...

  返回基金会,chlastname

  划分英文名称非常简单。空间分开。第一部分是名称,第二部分是姓氏。

  准备测试数据:

  测试数据

  打开Pycharm并输入以下代码

  代码

  运行效果如下:

  运行效果显示

  附加实施代码:

  #!/usr/bin/env Python

  导入大熊猫作为pd

  openpath ='test.xls'

  savepath ='test1.xls'

  def total_count(path = openpath,sheetname ='testsheet'):

  df = pd.read_excel(路径,sheet_name = sheetname,names = ['value','count'])

  #获取统计项目

  item_name = set(df ['value'])

  #创建字典统计

  total_dict = dict(zip([i在item_name中i]

  0对于_ in rang(len(item_name)])))))))))))))))))))))))))))

  #,一一统计数量

  对于索引,枚举(df ['value'])中的项目:

  #如果在集合中

  如果item_name中的项目:

  #添加计数统计信息

  total_dict [item] += df ['count'] [index]

  # 返回

  返回total_dict

  def datato_excel(path = savepath,sheet_name ='total',data_dict = {}):

  report_df = pd.dataframe.from_dict(data_dict,orient ='index')

  xl_writer = pd.excelwriter(路径)

  report_df.to_excel(xl_writer,sheet_name)

  尝试:

  xl_writer.save()

  打印(“保存完成”)

  除了:

  打印(“保存文件中的错误”)

  如果__name__ ==“ __ -main __”:

  datato_excel(data_dict = total_count())

  我不知道这是您想要的结果。如果您有帮助,请采用它,谢谢!

  您可以尝试一下。

  rowid = sht.usedrange.find(userId).address [1:3]

  win32com没有详细的文档。不提及中文。我建议您使用XLRD

  这件事不需要win32。还有xlwt等。

  如果您必须使用Win32COM,请参考在线MSDN。但是并非所有功能都已实现。

  Python的Excel操作是多种多样的,如果您掌握了相关用法,则可以执行的操作数据!

  操作XLS文件

  XLRD(读取操作):

  导入xlrd

  1.介绍XLRD模块

  workbook = xlrd.open_workbook(“ 36.xls”)

  2.打开[36.xls]文件以获取excel文件的工作簿(工作簿)对象

  名称= workbook.sheet_names()

  3.获取所有床单的名称

  工作表= workbook.sheet_by_index(0)

  4.通过表索引获取表格对象

  工作表是Excel表的第一张表的实例化对象

  工作表= workbook.sheet_by_name(“省和城市”)

  5.通过表名称获取表格对象

  工作表是一个名为[省和城市]实例化对象的Excel表格

  nrows = worksheet.nrows

  6.获取这张桌子的头数

  ncols = worksheet.ncols

  7.获取此表的总数

  row_data = workshed.row_values(n)

  8.获取表的n行的内容

  col_data = workshhet.col_values(n)

  9.在此表中获取NN列的内容

  cell_value = worksheet.cell_value(i,j)

  10.在此表中获取行i的J列的单元格内容

  XLWT(写作操作):

  导入XLWT

  1.介绍XLWT模块

  book = xlwt.workbook(encoding =“ utf-8”)

  2.创建一个工作簿对象,该对象等同于创建Excel文件

  表= book.add_sheet('test')

  3.创建一个表对象,一个表对象对应于Excel文件中的表单。

  sheet.write(i,j,“省和市政”)

  4.将“省和城市”写成i -i -i -i -c -column J和J列J

  book.save(“数据\ 36.xls”)

  5.保存到数据目录[36.xls]文件

  操作XLSX文件

  OpenPyXl(读取操作):

  导入OpenPyXl

  1.介绍OpenPyXl模块

  Workbook = OpenPyXl.Load_workbook(“ 36.xlsx”)

  2.打开[36.xlsx]文件以获取excel文件的工作簿(工作簿)对象

  名称= Workbook.SheetNames

  工作表= Workbook.worksheets [0]

  工作表=工作簿[“省和市政”]

  WS = Workbook.Active

  6.获取当前的主动锻炼,默认值是第一个讲习班

  nrows = worksheet.max_row

  7.获取这张桌子的头数

  ncols = workshet.max_column

  8.获取此表的总数

  content_a1 = workshet ['a1']。价值

  9.获取表A1的固有形式的内容

  content_a1 = worksheet.cell(行= 1,colorn = 1)。价值

  10.在此表中获取第一列1的内容

  OpenPyXl(写作操作):

  Workbook = OpenPyXl.Workbook()工作表= Workbook.Active

  3.获取当前的活动工作,默认值是第一个工作表

  worgsheet.title =“ [#0#]”

  4.工作表的名称设置为“测试”

  工作表= workbook.create_sheet()

  5.创建一个新的工作表并在默认情况下在工作簿的末尾插入它

  worksheet.cell(i,j,'空')

  6.行i -i列J的值更改为“空”

  工作表[“ b2”] =“空”

  7.将B2的值更改为“空”

  worksheet.insert_cols(1)

  8.在第一列之前插入一列

  worksheet.append([“新增加”,“台湾省”])

  9.添加银行

  workbook.save(“数据\ 36.xlsx”)

  10.保存到数据目录[36.xlsx]文件

  Pandas Processing Excel文件

  熊猫的操作:

  导入大熊猫作为pd

  1.介绍大熊猫模块

  data = pd.read_excel('36 .xls')

  2.读取[36.xls]或[36.xlsx]文件

  data = pd.read_csv('36 .csv')

  3.阅读[36.CSV]文件

  data = data.dropna(sub set = ['shop'])

  4.过滤数据存储中缺少的数据

  data.sort_values(“客户网络名称”,Inplace = true)

  5.根据客户网络从小到大的客户网络中对数据进行排序。

  data = pd.read_csv(36.csv,skiprows = [0,1,2],sep = none,skipfooter = 4)

  6.读取[36.CSV]文件,前三行和后四行的数据略微结束

  data = data.fillna('空')

  7.将数据中的空白填充为“空”

  data.drop_duplicates('order','first',Inplace = true)

  8.数据中的数据,按照[订单]列重新处理,保留第一片数据

  data = pdataframe(data,colorns = ['order','warehouse'])

  9.仅将数据保存在[order] [仓库]列中

  data = data [(data [u''显示数量'] 0]

  10.在[显示数量]的列中保持数据仅大于0

  data = data [data [“ order”] .str.Contains('000')]

  11.仅保留[顺序]列中包含“ 000”的数据

  data = data [数据[“仓库”] =='真正的仓库']

  12.仅保留[仓库]列是“真正仓库”的数据

  xs = data [data [“ shop”] =='南极人'] ['sales']

  13.获取商店的销售数据

  data ['order'] = data ['order'] .str [3:7]

  14. [顺序]列的值仅保留4-8个字节的值

  data [“ postage”] = np.Where((data ['shop'] .str.contains('t | t'))) - (data ['warehouse'] =='更换位置',8,数据['邮资'])

  15.如果商店包括t或t和仓库不等于“付费定位”,则邮费的价值将更改为8,否则价值不会更改

  data = np.array(data).tolist()

  16.将数据从数据框架转换为列表

  data = pd.dataframe(数据)

  17.将列表转换为数据框架格式

  zhan = data [u'show'] .sum()。(2)

  18.寻求和谐数据中的所有数据,并采用两个小数

  sum = data.groupby(['shop'])['Brush Order'] .sum()

  19.根据商店寻求数据以总结订单

  计数=数据['shop']。value_counts()

  20.根据商店计算数据

  avg = data.groupby(['shop'])['Brush Order'] .Mean()

  21.根据商店找到平均数据数量

  count = pd.concat([[count,sum],axis = 1,ignore_index = true,sort = true)

  22.结合计数和总和的两个数据框

  count = count.rename(index = str,colorns = {0:“ order”,1:“ cost”})

  23.修改新生成的数据帧名称

  data = pd.merge(sum,counts,how ='left',left_on ='shop',right_on ='shop')

  24.将列表转换为数据框架格式

  来自OpenPyXl Import Workbook

  WB = Workbook()

  ws1 = wb.active

  data.to_excel('36 .xlsx')

  wb.close()

  25.数据完全写入截止过程中。执行此操作时,[36.xlsx]无法打开

  Excel格式操作

  样式处理:

  1.打开[36.xlsx]

  工作表=工作簿。工作表[0]

  2.将第一个纸对象分配给工作表

  sheet.column_dimensions ['a']。宽度= 20.0

  3.将A的宽度设置为20

  sheet.Row_dismensions [1] .height = 20.0

  4.将第一行的高线设置为20

  sheet.merge_cells('a1:a2')

  5.合并表A1和A2单元格

  Sheet.unmerge_cells('a1:a2')

  6.取消表A1和A2单元格并合并

  sheet.insert_rows(2,2)

  7.将表格表从第2行插入第2行中

  sheet.insert_cols(3,2)

  8.将表格表从第3列插入列3列3

  Sheet.Delete_rows(2)

  9.删除行2

  Sheet.delete_cols(3,2)

  10.从第3列删除表格表

  来自OpenPyXl。毫无式的进口字体,边框,图案填充,颜色,对齐方式

  11.引入字体,帧,图案填充,颜色,对齐方式

  sheet.cell(i,j).font = font(name ='times new roman',size = 14,bold = true,color = colors.white)

  12.设置表格表I的第一行的字体

  sheet.cell(i,j).lignment =对齐(Horizontal ='Center',垂直='Center'))

  13.设置表格i的第一行的字体对齐方法

  左,右,底部,底部= [side(style ='thin',color ='000000')] * 4sheet.cell(i,j).border = border = border = border(左=左,右=右=右,top = top = top,底部=底部)

  14.介绍边境风格并致电

  file = atteratufull(“ solid”,fgcolor =“ 1874cd”)sheet.cell(1,j).fill = file

  15.介绍填充风格并致电

  导入xlrd

  来自OpenPyXl Import Workbook

  来自OpenPyXl import load_workbook

  workbook = load_workbook(filename ='c:/users/edz/desktop/work/2021.08.03/ big Brother .xlsx')

  工作表=工作簿

  sheet.insert_cols(idx = 1)

  Sheet.Merge_Cells(A1:A3)

  表['a1'] = ['上海','shandong','zhejiang']

  随着软件继续升级,该功能也在增加。然后,这取决于Excel中的工作表有多少线。我应该做什么?让我教您如何查看excel有多少行,我希望它对您有所帮助!

  看看有多少行Excel是1

  打开一个工作表。您可以在工作表的左下角单击带有三角形的小图标,以向下移动液体栏,显示工作表的最后一行或最后一列。您可以看到多少行,但是此方法是更多时间 - 耗费。

  查看工作表中有多少行。最快的方法是按CTRL+DOWN CURSOR键,一次可以显示最后一行。您可以看到您拥有多少行。

  按照相同的原理,按CTRL+右光标键移动到最后一列。但是,看到的列是字母的组合。(XFD),如果您想返回到第一列,请使用CTRL+到左轻键。

  您还可以查看Excel的自动填充功能。首先选择A列,输入数字1,然后直接按CTRL+ENTER按钮。它将自动填充A列中的所有单元格至1。您可以看到状态栏中有多少行计数。

  以相同的方式查看列。选择1行,然后在输入后按Ctrl+Enter键。1。通过状态栏可以看到许多列。

  看看有多少行Excel有2种方法2

  还有一种查看列,打开Excel选项并检查公式中的[R1C1参考样式]的方法,以便将工作表的列以数字方式显示。

  然后,将组合的键CTRL+在左侧光标键中查看最后一行的值。

  你也许也喜欢:

  1.如何复制单词教程

  2.除了许多教程以外的所有数据

  3.如何使用Excel执行统计方法

  4.计算Excel总数的方法

  5. 2013年版的Excel视图正在运行的工作表中有多少等级

  6.在Excel中设置显示等级的教程

  7. Excel中显示表格编号的操作技巧

  8.如何查看网络数据

  我不知道您要问您要做什么的问题。

  判断不是空的。代码如下:

  来自OpenPyXl import load_workbook

  wb = load_workbook(filename = r'read path .xlsx')##阅读路径

  ws = wb.get_sheet_by_name(“ Sheep1”)## Sheep1名称的表格表

  num = 1

  而1:#set作为死周期

  cell = ws.cell(row = num,colorn = 1)。价值

  如果细胞:

  num = num +1

  别的:

  打印(num)

  出口 ()

  运行结果(已删除了我的路径):

  结论:以上是首席CTO的全部内容,请注意我在Python上写了多少条线以查看Excel。感谢您阅读ContentDo,不要忘记找出有多少行相关内容。