鱼C论坛

 找回密码
 立即注册
查看: 727|回复: 33

[已解决]哪种执行效率更高一点?

[复制链接]
发表于 2024-5-25 10:58:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我有一个关于考勤汇总的一个dataframe,pandas库的,,我称之为总表,现在是要把它根据不同的条件再次拆分成“所有办公地点的人员需要扣款的”、“所有办公地点的人员无需扣款的”、“总部办公室人员的”,。。。。最终形成一个excel文件,里面就包含了这个“总表”,还有再次拆分出来的另外三个表格,总共四个sheet.,,然后再进一步给生成的各个sheet做一个美化添加边框改字体什么的操作..我该用怎么样的流程去实现~效率会更高一点?

我目前有两个想法,
第一个就是这个总表,先保存成一个excel文件,然后用openpyxl库,对这个总表表格文件做一个遍历,然后把遍历到的每一行根据它的实际条件,添加到不同的sheet里面,然后做美化。
第二个就是这个总表的DF,先分成另外三个DF出来,得到四个DF,再生成四个excel文件,然后再用openpyxl去遍历美化,最后用openpyxl把那三个表合并到总表的文件里,形成另外三个sheet,,再把那三个excel表格删除掉。

就这两种想法,,哪种的执行效率会比较高一点,,
或者说,从得到这个总表的df阶段开始,有别的实现方法效率更快的?麻烦告知
最佳答案
2024-5-25 10:58:43
从效率的角度来看,第二种想法可能会更高一点。

在第一种想法中,你需要对总表的每一行进行遍历,并根据条件添加到不同的sheet中,这样的操作对于大型数据集可能会比较耗时。同时,由于你需要对每个sheet进行美化操作,可能需要多次遍历和修改,也会增加一定的时间消耗。

而在第二种想法中,你可以先将总表的DF分解成四个DF,生成四个单独的excel文件。然后使用openpyxl遍历和美化这四个文件的各个sheet。最后,你可以使用openpyxl将其他三个文件的sheet合并到总表的文件中,形成另外三个sheet,再删除其他三个excel表格。相比较第一种方法,在第二种方法中,你可以对四个DF和四个excel文件进行并行处理,节省了一些时间。

除此之外,如果你对时间效率要求比较高,还可以考虑使用pandas库的ExcelWriter来直接操作excel文件,从而避免生成中间文件的过程。这样可以减少IO操作,提高效率。

总之,第二种想法可能会更高效一些,但具体的效率还取决于数据量的大小以及美化操作的复杂程度。你可以尝试实现两种方法,并进行测试评估,选择最适合你需求的方式。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-25 10:58:43 | 显示全部楼层    本楼为最佳答案   
从效率的角度来看,第二种想法可能会更高一点。

在第一种想法中,你需要对总表的每一行进行遍历,并根据条件添加到不同的sheet中,这样的操作对于大型数据集可能会比较耗时。同时,由于你需要对每个sheet进行美化操作,可能需要多次遍历和修改,也会增加一定的时间消耗。

而在第二种想法中,你可以先将总表的DF分解成四个DF,生成四个单独的excel文件。然后使用openpyxl遍历和美化这四个文件的各个sheet。最后,你可以使用openpyxl将其他三个文件的sheet合并到总表的文件中,形成另外三个sheet,再删除其他三个excel表格。相比较第一种方法,在第二种方法中,你可以对四个DF和四个excel文件进行并行处理,节省了一些时间。

除此之外,如果你对时间效率要求比较高,还可以考虑使用pandas库的ExcelWriter来直接操作excel文件,从而避免生成中间文件的过程。这样可以减少IO操作,提高效率。

总之,第二种想法可能会更高效一些,但具体的效率还取决于数据量的大小以及美化操作的复杂程度。你可以尝试实现两种方法,并进行测试评估,选择最适合你需求的方式。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-25 11:04:44 | 显示全部楼层
FishC 发表于 2024-5-25 10:58
从效率的角度来看,第二种想法可能会更高一点。

在第一种想法中,你需要对总表的每一行进行遍历,并根据 ...

明白。谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-25 11:04:53 | 显示全部楼层


不客气,希望能帮到你。如果还有其他问题,随时来问我哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-25 11:06:29 | 显示全部楼层
FishC 发表于 2024-5-25 11:04
不客气,希望能帮到你。如果还有其他问题,随时来问我哦!

以上回复来自 FishC AI 小助理,如未能正 ...

pandas库的ExcelWriter有没有办法在一个excel文件里生成4个sheet的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-25 11:06:39 | 显示全部楼层
laiyuanjie 发表于 2024-05-25 11:06
pandas库的ExcelWriter有没有办法在一个excel文件里生 ...


是的,pandas库的ExcelWriter可以在一个excel文件中生成多个sheet。你可以按照以下步骤来实现:

1. 创建一个ExcelWriter对象,指定要保存的文件路径和文件名:
import pandas as pd

writer = pd.ExcelWriter('output.xlsx')

2. 将不同的DataFrame写入ExcelWriter对象的不同sheet中:
df_sheet1.to_excel(writer, sheet_name='Sheet1')
df_sheet2.to_excel(writer, sheet_name='Sheet2')
df_sheet3.to_excel(writer, sheet_name='Sheet3')
...

在上面的代码中,`df_sheet1`、`df_sheet2`等分别代表要写入的不同DataFrame,`sheet_name`参数用于指定要写入的sheet的名称。

3. 最后,调用ExcelWriter对象的save方法保存文件:
writer.save()

这样就可以将不同的DataFrame写入同一个excel文件的不同sheet中了。请根据你的具体需求修改代码,并适当添加美化操作。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-25 11:07:08 | 显示全部楼层
FishC 发表于 2024-5-25 11:06
是的,pandas库的ExcelWriter可以在一个excel文件中生成多个sheet。你可以按照以下步骤来实现:

1.  ...

欧了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-25 11:07:13 | 显示全部楼层


很高兴能帮到你!如果还有其他问题,随时来问我哦!祝你编程顺利!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-26 20:22:50 | 显示全部楼层
FishC 发表于 2024-5-25 11:06
是的,pandas库的ExcelWriter可以在一个excel文件中生成多个sheet。你可以按照以下步骤来实现:

1.  ...

如果我想把几个DF写进原先有内容的EXCEL表格里面呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-26 20:23:06 | 显示全部楼层
laiyuanjie 发表于 2024-05-26 20:22
如果我想把几个DF写进原先有内容的EXCEL表格里面呢?


如果你想将几个DataFrame写入到已有内容的Excel表格中,可以使用`openpyxl`库来进行操作。下面是一个示例代码:
import pandas as pd
from openpyxl import load_workbook

# 读取已有的Excel表格
book = load_workbook('原始表格.xlsx')

# 创建一个ExcelWriter对象,并指定要写入的Excel文件
writer = pd.ExcelWriter('原始表格.xlsx', engine='openpyxl')
writer.book = book

# 将DataFrame写入到指定的sheet中,注意指定开始写入的单元格位置
df1.to_excel(writer, sheet_name='Sheet1', startrow=<start_row>, startcol=<start_column>, index=False)
df2.to_excel(writer, sheet_name='Sheet2', startrow=<start_row>, startcol=<start_column>, index=False)
df3.to_excel(writer, sheet_name='Sheet3', startrow=<start_row>, startcol=<start_column>, index=False)

# 保存并关闭ExcelWriter对象
writer.save()
writer.close()

在上述代码中:
- `load_workbook`函数用于加载已有的Excel表格。
- 创建`ExcelWriter`对象时,通过`engine='openpyxl'`来指定使用`openpyxl`引擎。
- `writer.book`属性用于将已有的Excel表格关联到`ExcelWriter`对象中。
- 在调用`to_excel`方法时,通过`startrow`和`startcol`参数来指定从哪个单元格开始写入DataFrame的数据,这样可以保留已有数据,并将新的数据添加到相应位置。

请根据你的实际需求修改代码中的路径、sheet名称以及起始行列数等参数,以及添加其他的DataFrame写入操作。
如果有任何问题,请随时向我咨询!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 14:21:31 | 显示全部楼层
FishC 发表于 2024-5-26 20:23
如果你想将几个DataFrame写入到已有内容的Excel表格中,可以使用`openpyxl`库来进行操作。下面是一个示 ...

如果我要把DF用openpyxl库来写入EXCEL的同时,给这个DF做一些美化,比如添加边框,改变列宽什么等一系列的操作,那么是把DF写入保存在EXCEL表格里面之后保存退出,再重新用openpyxl打开,去添加各种我要的属性,,,还是在一开始写入DF之后就马上可以进行操作~而不必中间保存退出再打开?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-28 14:21:51 | 显示全部楼层
laiyuanjie 发表于 2024-05-28 14:21
如果我要把DF用openpyxl库来写入EXCEL的同时,给这个D ...


如果你想在使用openpyxl库将DataFrame写入Excel的同时进行美化操作,可以直接在写入DataFrame之后进行操作,而不必保存退出再打开。下面是一个示例代码:
import pandas as pd
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Border, Side

# 创建一个空白的Excel表格
wb = Workbook()
ws = wb.active

# 将DataFrame写入Excel表格
df.to_excel('output.xlsx', index=False, engine='openpyxl', sheet_name='Sheet1')

# 加载已有的Excel表格
wb = load_workbook('output.xlsx')

# 获取指定的sheet
ws = wb['Sheet1']

# 设置边框
border = Border(left=Side(border_style='thin'),
                right=Side(border_style='thin'),
                top=Side(border_style='thin'),
                bottom=Side(border_style='thin'))
for row in ws.iter_rows():
    for cell in row:
        cell.border = border

# 设置列宽
ws.column_dimensions['A'].width = 15
ws.column_dimensions['B'].width = 12
ws.column_dimensions['C'].width = 20

# 保存修改后的Excel表格
wb.save('output.xlsx')

在上述代码中,首先使用`pandas`将DataFrame写入Excel表格,然后通过`load_workbook`加载已有的Excel文件,并获取到相应的sheet。接着,你可以使用`openpyxl`提供的函数和属性对Excel表格进行美化操作,比如设置边框和列宽。最后,使用`save`方法保存修改后的Excel表格。

请根据你的实际需求修改代码中的路径、sheet名称和具体的美化操作。如果有任何问题,请随时向我咨询!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-29 15:49:51 | 显示全部楼层
FishC 发表于 2024-5-28 14:21
如果你想在使用openpyxl库将DataFrame写入Excel的同时进行美化操作,可以直接在写入DataFrame之后进行 ...

如果我的美化,每一列的边框,字体大小,对齐方式等等,都各不相同,那么代码比较好一点的写法是怎么样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-29 15:50:31 | 显示全部楼层
laiyuanjie 发表于 2024-05-29 15:49
如果我的美化,每一列的边框,字体大小,对齐方式等等 ...


如果每一列的边框、字体大小、对齐方式等都各不相同,可以使用一个字典来存储每一列的美化属性,然后在遍历每一列时,根据字典中对应的属性设置进行操作。下面是一个示例代码:
import pandas as pd
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Border, Font, Alignment

# 创建一个空白的Excel表格
wb = Workbook()
ws = wb.active

# 将DataFrame写入Excel表格
df.to_excel('output.xlsx', index=False, engine='openpyxl', sheet_name='Sheet1')

# 加载已有的Excel表格
wb = load_workbook('output.xlsx')

# 获取指定的sheet
ws = wb['Sheet1']

# 定义每一列的美化属性(示例)
column_styles = {
    'A': {
        'border': Border(left=Side(border_style='thin')),
        'font': Font(size=12),
        'alignment': Alignment(horizontal='left', vertical='center')
    },
    'B': {
        'border': Border(right=Side(border_style='thick')),
        'font': Font(size=14, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center')
    },
    'C': {
        'border': Border(top=Side(border_style='medium')),
        'font': Font(size=16, italic=True),
        'alignment': Alignment(horizontal='right', vertical='center')
    }
}

# 遍历每一列,并根据属性设置进行美化操作
for column in ws.columns:
    column_letter = column[0].column_letter
    if column_letter in column_styles:
        style = column_styles[column_letter]
        for cell in column:
            cell.border = style['border']
            cell.font = style['font']
            cell.alignment = style['alignment']

# 保存修改后的Excel表格
wb.save('output.xlsx')

在上述示例代码中,我们定义了一个`column_styles`字典来存储每一列的美化属性。键是列的字母标识,值是一个包含边框、字体和对齐方式的字典。在遍历每一列时,我们根据字典中对应的属性设置对单元格进行美化操作。

请根据你的实际需求修改代码中的路径、sheet名称和具体的美化属性。你可以按照这种方式为每一列设置不同的美化效果。如果有任何问题,请随时向我咨询!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-29 17:03:39 | 显示全部楼层
FishC 发表于 2024-5-29 15:50
如果每一列的边框、字体大小、对齐方式等都各不相同,可以使用一个字典来存储每一列的美化属性,然后在 ...

class WriterExcel:
    def __init__(self):
        pass

    def fun_save_sheet(self,sheet,sheet_name,path):
        self.sheet = sheet
        self.sheet_name = sheet_name
        self.path = path
        self.excel = vb.load_workbook(self.path)

        self.fun_writer_excel()

    def fun_writer_excel(self):
        self.writer = pd.ExcelWriter(self.path,engine="openpyxl")
        self.writer.book = self.excel

        self.sheet.to_excel(self.writer,sheet_name=self.sheet_name,startrow=0,startcol=0,index=True)

        #从这里接入美化的模块

        self.writer.save()
        self.writer.close()


如果我是在已有的EXCEL表格里,将一个pandas的DF写入成为一个新的sheet,,,在注释的那个地方接入美化的代码,,有没有问题?
是不是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-29 17:04:01 | 显示全部楼层
laiyuanjie 发表于 2024-05-29 17:03
class WriterExcel:
    def __init__(self):
      ...


你的代码基本上是正确的,只是在接入美化的代码时需要做一些修改。以下是修改后的代码示例:
class WriterExcel:
    def __init__(self):
        pass

    def fun_save_sheet(self, sheet, sheet_name, path):
        self.sheet = sheet
        self.sheet_name = sheet_name
        self.path = path
        self.excel = load_workbook(self.path)

        self.fun_writer_excel()

    def fun_writer_excel(self):
        self.writer = pd.ExcelWriter(self.path, engine="openpyxl")
        self.writer.book = self.excel

        # 将DataFrame写入到指定的sheet中,注意指定开始写入的单元格位置
        self.sheet.to_excel(self.writer, sheet_name=self.sheet_name, startrow=0, startcol=0, index=True)

        # 美化操作(示例)
        ws = self.excel[self.sheet_name]
        # 设置边框
        border = Border(left=Side(border_style='thin'),
                        right=Side(border_style='thin'),
                        top=Side(border_style='thin'),
                        bottom=Side(border_style='thin'))
        for row in ws.iter_rows():
            for cell in row:
                cell.border = border

        # 设置列宽
        ws.column_dimensions.column_dimensions['A'].width = 15
        ws.column_dimensions['B'].width = 12
        ws.column_dimensions['C'].width = 20

        self.writer.save()
        self.writer.close()

在上述代码中,我们使用`load_workbook`函数加载已有的Excel文件,然后通过`self.excel[self.sheet_name]`来获取指定的sheet。在美化操作部分,我们设置了边框和列宽的示例。你可以根据自己的需求对代码进行修改,并添加其他的美化操作。

希望这可以解决你的问题。如有其他疑问,请随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-31 09:56:35 | 显示全部楼层
FishC 发表于 2024-5-29 17:04
你的代码基本上是正确的,只是在接入美化的代码时需要做一些修改。以下是修改后的代码示例:

class BeautifySheet:
    def __init__(self):

        pass

    def fun_set_excel(self,excel):
        self.excel = excel


    def fun_beautify(self,sheet_name,dict):
        self.sheet = self.excel[sheet_name]
        self.column_styles = dict

        for self.column in self.sheet.columns:

            self.column_letter = self.column[0].column_letter
            print(self.column_letter)#即ABCD.....

            if self.column_letter in self.column_styles:
                self.style = self.column_styles[self.column_letter]

                self.sheet.column_dimensions[self.column_letter].width = self.style["width"]#设置列宽

                for self.cell in self.column:
                    self.cell.border = self.style["border"]#边框
                    self.cell.font = self.style["font"]#字体
                    self.alignment = self.style["alignment"]#居中方式

from openpyxl.styles import Border, Font, Alignment
from openpyxl import Workbook, load_workbook
from Border import border
total_sheet_styles = {
    'A': {
        'border': border.l_thick_d_thin,
        'font': Font(size=12, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'B': {
        'border': border.l_thin_d_thin,
        'font': Font(size=15, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 12

    },
    'C': {
        'border': border.l_drop_d_thin,
        'font': Font(size=12, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 12
    },
    'D': {
        'border': border.l_thick_d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'E': {
        'border': border.d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 6
    },
    'F': {
        'border': border.l_drop_d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'G': {
        'border': border.d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'H': {
        'border': border.l_thin_d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'I': {
        'border': border.d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 6
    },
    'J': {
        'border': border.l_drop_d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'K': {
        'border': border.l_thin_d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'L': {
        'border': border.d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'M': {
        'border': border.d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'N': {
        'border': border.l_thin_d_thin,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    },
    'O': {
        'border': border.d_thin_r_thick,
        'font': Font(size=10, bold=True),
        'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
        'width' : 10
    }
}




为什么表格传入后美化~~单元格不会换行显示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-31 09:56:47 | 显示全部楼层
laiyuanjie 发表于 2024-05-31 09:56
class BeautifySheet:
    def __init__(self):

  ...


在你的代码中,单元格不会换行显示的问题可能是因为在设置对齐方式时,未正确指定`wrap_text`属性为`True`。请修改 `fun_beautify` 方法中的以下部分:
self.alignment = self.style

修改为:
self.cell.alignment = self.style['alignment']

此外,在设置列宽时,也应使用正确的语法:
self.sheet.column_dimensions[self.column_letter].width = self.style['width']

请根据以上修改,重新运行代码,看看是否能实现单元格换行显示的效果。

如果问题仍然存在,请确保在创建Excel表格时启用了文本自动换行功能。如需启用该功能,请使用以下代码片段:
ws = wb.active
for row in ws.iter_rows():
    for cell in row:
        cell.alignment = Alignment(wrapText=True)

其中,`wb` 是你的 `Workbook` 对象。将此代码放在 `wb` 加载或创建后,并在进行美化操作前执行,以确保启用了文本自动换行。

希望这些修改能够解决你的问题。如果仍有疑问,请随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-31 10:07:56 | 显示全部楼层
FishC 发表于 2024-5-31 09:56
在你的代码中,单元格不会换行显示的问题可能是因为在设置对齐方式时,未正确指定`wrap_text`属性为`Tr ...

那我的那串代码里,要调整行高得怎么弄
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-31 10:08:19 | 显示全部楼层
laiyuanjie 发表于 2024-05-31 10:07
那我的那串代码里,要调整行高得怎么弄


要调整行高,你可以在`fun_beautify`方法中添加以下代码来实现:
for row in self.sheet.iter_rows():
    for cell in row:
        cell.alignment = self.style['alignment']
        cell.font = self.style['font']
        cell.border = self.style['border']
        self.sheet.row_dimensions[cell.row].height = 20  # 设置行高度

将上述代码添加到`for self.cell in self.column:`的循环内部,它会遍历每个单元格,并设置字体、对齐方式、边框以及行高。这里的`20`是行高度的示例值,你可以根据需要调整为合适的值。

在这段代码中,我们使用`self.sheet.row_dimensions[cell.row].height`来设置行高。`cell.row`表示当前单元格所在的行号,`height`属性则用于设置行高。

请在你的代码中添加上述修改后,再次测试是否能够成功调整行高。如果还有其他疑问,请随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 04:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表