如何使用read_excel和to_excel格式化Excel单元格?

时间:2018-10-30 00:24:36

标签: python excel pandas format spreadsheet

我目前有一个名为“ excel example.xlsx”的Excel文件。我在这个文件中有2张纸。

第一张纸的标题为“首页”,第二张纸的标题为“ Sheet2”。

第1页: 第一页“主页”在第一行中的句子“ This is a test”从单元格A1到列D1结束。

这是主页的示例:

Cell: A1“此” Cell: B1“是” Cell: C1“一个” Cell: D1“测试”

表2:

在第二张工作表“ Sheet2”中,我希望打印以下数据:

Cell: A1“ col1” Cell: B1“ col2” Cell: A2“ 21” Cell: B1“ 23” Cell: A3“ 22” Cell: B3“ 24”

到目前为止,这是我的代码:

import pandas as pd
from pandas import read_excel

my_sheet_name = 'Home' 
df1 = read_excel('excel example.xlsx', sheet_name = 'Home')    


x = {'col1': [21, 22], 'col2': [23, 24]}
df2 = pd.DataFrame(data=x)


writer = pd.ExcelWriter('excel example.xlsx')
df1.to_excel(writer, 'Home')
df2.to_excel(writer, 'Sheet2')
writer.save()

此代码可以正常工作,但是存在一些格式问题。

问题1:

“首页”表从单元格B1开始打印句子“这是测试”,而不是我想要的A1。单元格A1为空白。

问题2:

“这是测试”一词带有边框。我希望删除边界。

问题3:

“这是测试”一词已加粗。我希望尽可能删除粗体格式。

我是编码的新手,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

From the documentation我修改了to_excel中传递的参数以包含index=False来解决您遇到的问题1,因为pandas使用第一列作为索引并解释了Excel的第一行文件作为标题(重写为Excel文件时,因此为粗体和边框)。为了解决问题2和3,我阅读了第一张表,其中添加了header=None,以使列标题不会被加粗,并重新将数据加载到df2中,以便也没有标题

对我有用的最终代码是:

import pandas as pd
from pandas import read_excel

my_sheet_name = 'Home' 
df1 = read_excel('excel example.xlsx', sheet_name = 'Home', header=None)    


x = {'0': ['col1', 21, 22], '1': ['col2', 23, 24]}
df2 = pd.DataFrame(data=x)


writer = pd.ExcelWriter('excel example.xlsx')
df1.to_excel(writer, 'Home', index=False)
df2.to_excel(writer, 'Sheet2', index=False)
writer.save()