excel 和 text 文件的读写操作

发布于:2024-05-02 ⋅ 阅读:(33) ⋅ 点赞:(0)

excel 和 text 文件的读写操作

在这里插入图片描述

1. text 文件读写包

open语句

在文件存在的时候,即打开文件(此时操作会覆盖文件,实际就是删除文件重后重新创建);在文件不存在的时候,即创建文件。

import sys
print(sys.argv[0])
print(__file__)
print(sys.path[0])
q=open(sys.path[0] + "\out.txt","w",encoding='utf-8')
q.write('这个是测试一下')
q.close()
print('done')

image-20240428180210201

循环生成文本的案例:

import os
import sys
print(sys.argv[0])
print(__file__)
print(sys.path[0])
fq=open(sys.path[0] + "\out1.txt","w",encoding='utf-8')
for i in range(1,1000):
  fq.write('哈哈'+ str(i)+'\n')
fq.close
print('done')

image-20240428180332003

2. excel 读写

excel 的读写主要是两个包,openpyxl 和xlsxwriter

import openpyxl
from  openpyxl.reader.excel  import  load_workbook
import sys
import os

dir=sys.path[0] + '\练习题'
fq=open('out.txt','w',encoding='utf-8') # 打开文件,写权限
for wjm in os.listdir(dir):
  os.chdir(dir)
  wk=load_workbook(filename=wjm) 
  gzb= wk.sheetnames
  for x in range(len(gzb)):
    sheet1=wk[gzb[x]]
    print(wjm+'   '+sheet1.title)
    for i in range(1,sheet1.max_row+1):
      chuan=''
      for j in range(1,sheet1.max_column+1):
        chuan='%s%s%s' % (chuan, ',', sheet1.cell(row=i,column=j).value)
      chuan=chuan[1:]#获得从第二个字符串开始到末尾的字符串
      fq.write(chuan+'\r\n')
fq.close
print('it is over')

2.1 openpyxl包

是个读写 Excel 2010 xlsx/xlsm/xltx/xltm 的 Python 库,简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点

  1. 安装

    pip install openpyxl
    pip install -i https://mirrors.aliyun.com/pypi/simple --upgrade openpyxl
    
  2. 基础使用

    from openpyxl import Workbook
    wb = Workbook()
     
    # grab the active worksheet
    ws = wb.active
     
    # Data can be assigned directly to cells
    ws['A1'] = 42
     
    # Rows can also be appended
    ws.append([1, 2, 3])
     
    # Python types will automatically be converted
    import datetime
    ws['A2'] = datetime.datetime.now()
     
    # Save the file
    wb.save("sample.xlsx")
    

openpyxl 对excel 文件的操作分为两种

  • 一、创建一个新的excel文件
  • 二、打开一个已经存在的excel文件

删除excel文件命令为 os.remove

2.2 xlsxwriter包

xlsxwriter是一个用于创建Excel文件的Python库,它提供了许多用于创建、修改和保存Excel文件的函数。

  1. 以下是xlsxwriter库中的一些函数:

    1. Workbook(): 创建一个新的Excel工作簿对象。

    2. add_worksheet(): 向现有工作簿中添加一个新的工作表。

    3. add_chart(): 向现有工作簿中添加一个新的图表。

    4. vba_to_excel(): 将VBA代码转换为Excel可读取的格式。

    5. excel_to_vba(): 将Excel文件转换为VBA可读取的格式。

    6. merge_cells(): 合并单元格。

    7. cell(): 获取或选择工作表中的单元格。

    8. column(): 获取或选择工作表中的列。

    9. row(): 获取或选择工作表中的行。

    10. select_range(): 选择工作表中的一个范围。

    11. export_chart(): 将图表导出为Excel文件。

    12. save(): 保存工作簿。

    13. file(): 打开一个现有的Excel文件。

    14. close(): 关闭工作簿。

    15. set_column(): 设置工作表中的列。

    16. set_row(): 设置工作表中的行。

    17. set_column_letter(): 设置列的字母缩写。

    18. set_row_letter(): 设置行的字母缩写。

    19. get_boolean(): 获取单元格的布尔值。

    20. get_double(): 获取单元格的数字值。

    21. get_date(): 获取单元格的日期值。

    22. get_formula(): 获取单元格的公式。

    23. get_string(): 获取单元格的文本值。

    24. get_value(): 获取单元格的值。

    25. set_value(value): 设置单元格的值。

    26. get_cell(): 获取或选择工作表中的单元格。

    27. set_cell(value): 设置工作表中的单元格,并将其值设置为value。

    28. get_row(): 获取或选择工作表中的行。

    29. get_column(): 获取或选择工作表中的列。

    30. get_sheet(): 获取或选择工作簿中的工作表。

    31. collapsed(): 检查工作表是否折叠。

    32. veryslow(): 检查工作簿是否为低性能。

    33. write(): 将数据写入工作簿。

    34. save_on_error(): 在出现错误时保存文件。

    35. ext_const(): 获取对象的扩展常量。

    36. name(): 获取对象的名称。

    37. path(): 获取对象的路径。

    38. addresource(): 获取对象的地址。

    39. type(): 获取对象的类型。

    40. value(): 获取对象的值。

这些函数是xlsxwriter库的核心,可以用于创建、修改和保存Excel文件。使用这些函数,您可以创建各种类型的Excel文件,包括标准的.xlsx文件、图表和图像等。

  1. 安装

    pip install XlsxWriter
    
  2. 基础用法

    导入包,创建文件,添加工作表,书写相关内容

    import xlsxwriter
    
    wk = xlsxwriter.Workbook('demo.xlsx')
    sheet = wk.add_worksheet('sheet123')
    sheet.write(0,0,190)
    sheet.write(2,3,'测试')
    wk.close()
    print('done')
    

    其他的写法

    import xlsxwriter
    wk = xlsxwriter.Workbook('demo.xlsx')
    sheet = wk.add_worksheet('sheet123')
    sheet.write_string(1,1,"python test")#写入字符串类型数据
    sheet.write_number(1,2,12)#写入数字型数据
    sheet.write_blank(1,3,"  ")#写入空类型数据
    sheet.write_formula(1,4,"=c2*10")#写入公式型数据
    sheet.write_boolean(1,5,True)#写入逻辑型数据
    sheet.write_url(1,6,"http://www.sina.com.cn")#写入超链接型数据
    property = {
                'font_size': 20,#字体大小
                'bold':True, #是否加粗
                'align': 'left',#水平对齐方式
                'valign': 'vcenter',#垂直对齐方式
                'font_name': u'微软雅黑',
                'text_wrap': False,  # 是否自动换行
                }
    cell_format = wk.add_format(property)
    sheet.write(2,2,"people",cell_format)
    wk.close()
    print('done')
    

    设置excel 文件内部布局,相关格式

    import xlsxwriter
    
    # 创建一个Excel文件
    workbook = xlsxwriter.Workbook('example.xlsx')
    worksheet = workbook.add_worksheet()
    
    # 设置行高
    worksheet.set_row(0, 30)  # 设置第一行的高度为30
    
    # 设置列宽
    worksheet.set_column('A:A', 20)  # 设置A列的宽度为20
    
    # 设置单元格格式
    bold_format = workbook.add_format({'bold': True, 'align': 'center', 'valign': 'vcenter'})
    worksheet.write('B2', 'Text', bold_format)  # 在B2单元格写入文本,并应用上面定义的格式
    
    # 关闭并保存文件
    workbook.close()
    
    

    插入图片

    import xlsxwriter
    wk = xlsxwriter.Workbook('demo.xlsx')
    sheet = wk.add_worksheet('sheet123')
    # 图片格式
    img_format={
                'x_offset': 8,#水平偏移
                'y_offset': 14,#垂直偏移
                'x_scale': 0.018,#水平缩放
                'y_scale': 0.018,#垂直缩放
                'url': None,
                'tip': None,
                'image_data': None,
                'positioning': None
                }
    # 示例:
    sheet.insert_image(1,1,'1.jpg',img_format)
    wk.close()
    print('done')