python 实现读写excel数据
读取数据:
先创建一个xlsx文件用来测试读取,格式如下
import openpyxl
from openpyxl.utils import get_column_letter
def read_data_line(file_name, sheet_name): """ 从excel中读取数据,保存到list中 :param file_name: :param sheet_name: :return: """ # 打开文件 wb = openpyxl.load_workbook(file_name) # 选择表单 sh = wb[sheet_name] # 按行读取数据转化为列表 rows_data = list(sh.rows) # 打印一下验证是否读取成功 print(len(rows_data)) # 读取表头信息 titles = [] for title in rows_data[0]: titles.append(title.value) # 打印一下验证是否读取成功 print(titles) # 读取内容数据 warnings = [] for warning in rows_data[1:]: data = [] for cell in warning: data.append(cell.value) # print(data) warnings.append(data) # 打印读取的数据 print(warnings)
def write_to_excel(increment_data, table_title): """ 将增量数据导出到excel中 :param increment_data: :param table_title: :return: """ # 创建一个工作表 wb = openpyxl.Workbook() # 创建一个数据库的sheet表单 ws = wb.active # 设置sheet名 ws.title = '数据库' # 设置宽度 width = 30 # 写入表头(row=1,col=1)开始的。数组是从0开始的,所以要加1 for col in range(len(table_title)): c = col + 1 ws.cell(row = 1, column = c).value = table_title[col] # 设置列宽 for i in range(1, ws.max_column + 1): ws.column_dimensions[get_column_letter(i)].width = width # 数据导出到文件中 for row in range(len(increment_data)): ws.append(increment_data[row]) # 保存为一个xlsx格式的文件 wb.save('test.xlsx')