具有筛选列功能的excel文件

时间:2015-09-07 09:57:34

标签: python excel openpyxl styleframe

我需要使用可以过滤的列创建excel。

更喜欢使用openpyxl,因为我已经使用StyleFrame来设置excel的样式。

example

2 个答案:

答案 0 :(得分:2)

以下是使用StyleFrame的解决方案,我不得不使用" row_to_add_filters"使用索引0将过滤器添加到列....

from StyleFrame import StyleFrame, colors

excel_writer = StyleFrame.ExcelWriter('example.xlsx')
sf = StyleFrame({'a': [1, 2, 3], 'b': [1, 1, 1], 'c': [2, 3, 4]})
sf.apply_column_style(cols_to_style=['a', 'c'], protection=True, style_header=True)
sf.apply_style_by_indexes(indexes_to_style=2, cols_to_style='b', bg_color=colors.yellow, protection=True)
sf.to_excel(excel_writer=excel_writer, row_to_add_filters=0, columns_and_rows_to_freeze='B2', allow_protection=True)
excel_writer.save()

答案 1 :(得分:-2)

此代码使用的是xlwt。 它写行和列。

import xlwt

def writelineSimple(shet,line, lstLine):
    col=0
    for elem in lstLine:
        shet.write(line, col, elem)
        col=col+1

def writecolum(shet,line,col, lstLine):
    for elem in lstLine:
        shet.write(line, col, elem)
        line=line+1

def writeline(shet,line,col, lstLine):
    for elem in lstLine:
        shet.write(line, col, elem)
        col=col+1


book = xlwt.Workbook(encoding="utf-8")
sheet1 = book.add_sheet("Sheet 1")

writelineSimple(sheet1,0,["col1","col2","col3","col4","col5"])
writelineSimple(sheet1,1,["writelineSimple1","writelineSimple2"])
writeline(sheet1,3,3,["writeline1","writeline2","writeline3"])
writecolum(sheet1,5,5,["writecolum1","writecolum2","writecolum3"])


book.save("myfirstgeneratedexcel.xls")

<强> myfirstgeneratedexcel.xls

col1    col2    col3    col4    col5    
writelineSimple1    writelineSimple2                

            writeline1  writeline2  writeline3

                    writecolum1
                    writecolum2
                    writecolum3