python xlwtモジュールの使用解析
一、基礎類の紹介
1、ブック類のWorkbook概要:
二、xlwt高級アプリケーション
フォントのサイズ、フォントの色、太字、斜体、フォントの下線、取り消し線などを設定します。
Alignment:フォントの水平方向と垂直方向の配置、テキストの改行、インデント、方向/回転、テキストの方向などを設定します。
Border:テーブルの外枠の設定。
Background:セルの背景色。
1、フォントクラスのFontプロファイル
2、 Alignment類概要
3、Border類概要
4、背景類Background概要
上記は簡単にxlwtの基本的な方法を紹介しただけで、まだ多くの方法機能が挙げられていないので、ここでは一つ一つ列挙しません。興味のある仲間は自分でソースを見て自分の欲しい機能を実現します。
三、いくつかのよく使う方法の紹介
1、セルの行の高さ、列の幅を設定します。
現在は良い方法が見つかりませんでした。列ごとに設定するしかありません。コードは以下の通りです
2、セルに日付を表示します。コードは以下の通りです。
財務またはその他の日時、小数、科学カウントなどの表示形式については、以下のオプションを参照してください。
4、テーブルにハイパーリンクを挿入します。コードは以下の通りです。
5、カラーマップについては以下の通りです。
以上がpython xlwtモジュールの使用解析の詳細です。python xlwtモジュールの使用に関する資料は他の関連記事に注目してください。
1、ブック類のWorkbook概要:
import xlwt
class Workbook(object0):
'''
, xlwt excel ,
'''
def __init__(self, encoding='ascii', style_compression=0):
pass
def add_sheet(self,sheetname, cell_overwrite_ok=False):
'''
:param sheetname:
:param cell_overwrite_ok: True, ( ), , False 。
:return: ( Worksheet() )
'''
pass
def save(self,filename_or_stream):
'''
Excel
:param filename_or_stream:Excel
:return:
'''
pass
2、ワークシート類Work Sheet概要
class Worksheet(object):
'''
'''
def __init__(self, sheetname, parent_book, cell_overwrite_ok=False):
'''
:param sheetname:
:param parent_book:
:param cell_overwrite_ok: ( True , False )
'''
pass
def write(self, r, c, label="", style=xlwt.Style.default_style):
'''
:param r: row , , 0 。
:param c: column , , 0 。
:param label: ( :int,long,float, , ,TRUE,FALSE,xlwt.Formula )
:param style: ( :Font, Alignment, Borders, Pattern, Protection。 :easyxf, easyfont, add_palette_colour)
:return:
'''
pass
3、スタイルを持たない基本エクセル表を作成します。
import xlwt
#
workbook = xlwt.Workbook(encoding = 'utf-8')
# Worksheet
worksheet = workbook.add_sheet('work_sheet')
# ( , , )
for i in range(3):
for j in range(3):
worksheet.write(i,j, label = 'test_' + str(j),)
#
workbook.save(r'i:\Excel_test.xls')
最終的には下の図のように見えます。二、xlwt高級アプリケーション
フォントのサイズ、フォントの色、太字、斜体、フォントの下線、取り消し線などを設定します。
Alignment:フォントの水平方向と垂直方向の配置、テキストの改行、インデント、方向/回転、テキストの方向などを設定します。
Border:テーブルの外枠の設定。
Background:セルの背景色。
1、フォントクラスのFontプロファイル
class Font(object):
def __init__(self):
# twip = 1/20 of a point = 1/1440 of a inch
# usually resolution == 96 pixels per 1 inch
# (rarely 120 pixels per 1 inch or another one)
self.height = 0x00C8 # 200: this is font with height 10 points
self.italic = False #
self.struck_out = False #
self.outline = False # ( )
self.shadow = False #
self.colour_index = 0x7FFF # , , 0x00 0x35 , , 0xFFFF 。
self.bold = False #
self._weight = 0x0190 # 0x02BC gives bold font #
self.escapement = self.ESCAPEMENT_NONE # ,0x00 ,0x01 ,0x02 。
self.underline = self.UNDERLINE_NONE # ,0x01 ,0x02 0x01 ,0x21 ,0x02 0x21
self.family = self.FAMILY_NONE # , ,0x01 ,0x02 ,0x03 ,0x04 ,0x05
self.charset = self.CHARSET_SYS_DEFAULT # ,
CHARSET_ANSI_LATIN = 0x00
CHARSET_SYS_DEFAULT = 0x01
CHARSET_SYMBOL = 0x02
CHARSET_APPLE_ROMAN = 0x4D
CHARSET_ANSI_JAP_SHIFT_JIS = 0x80
CHARSET_ANSI_KOR_HANGUL = 0x81
CHARSET_ANSI_KOR_JOHAB = 0x82
CHARSET_ANSI_CHINESE_GBK = 0x86
CHARSET_ANSI_CHINESE_BIG5 = 0x88
CHARSET_ANSI_GREEK = 0xA1
CHARSET_ANSI_TURKISH = 0xA2
CHARSET_ANSI_VIETNAMESE = 0xA3
CHARSET_ANSI_HEBREW = 0xB1
CHARSET_ANSI_ARABIC = 0xB2
CHARSET_ANSI_BALTIC = 0xBA
CHARSET_ANSI_CYRILLIC = 0xCC
CHARSET_ANSI_THAI = 0xDE
CHARSET_ANSI_LATIN_II = 0xEE
CHARSET_OEM_LATIN_I = 0xFF
self.name = 'Arial' #
1.1標準フォントスタイルを変更するExcelを作成します。
import xlwt
#
workbook = xlwt.Workbook(encoding = 'utf-8')
# Worksheet
worksheet = workbook.add_sheet('work_sheet')
#
xstyle = xlwt.XFStyle()
#
xfont = xlwt.Font()
xfont.colour_index = 0x04 #
xfont.bold = True #
xfont.height = 20 * 18 # (20 ,18 )
xfont.underline = 0x01 #
xfont.name = ' ' #
#
xstyle.font = xfont
for i in range(3):
for j in range(3):
# ( , , , )
worksheet.write(i,j, label = 'test_' + str(j),style=xstyle)
#
workbook.save(r'i:\2.xls')
すべてがうまくいけば、2.xlsを開けば、次のように見えます。2、 Alignment類概要
class Alignment(object):
#
HORZ_GENERAL = 0x00 #
HORZ_LEFT = 0x01 #
HORZ_CENTER = 0x02 #
HORZ_RIGHT = 0x03 #
HORZ_FILLED = 0x04 #
HORZ_JUSTIFIED = 0x05 #
HORZ_CENTER_ACROSS_SEL = 0x06 # Centred across selection , 0x02
HORZ_DISTRIBUTED = 0x07 # Distributed , 。
#
VERT_TOP = 0x00 #
VERT_CENTER = 0x01 #
VERT_BOTTOM = 0x02 #
VERT_JUSTIFIED = 0x03 # Justified (BIFF5-BIFF8X)
VERT_DISTRIBUTED = 0x04 # Distributed (BIFF8X) ,
# ( )
DIRECTION_GENERAL = 0x00 # BIFF8X
DIRECTION_LR = 0x01
DIRECTION_RL = 0x02
ORIENTATION_NOT_ROTATED = 0x00
ORIENTATION_STACKED = 0x01
ORIENTATION_90_CC = 0x02
ORIENTATION_90_CW = 0x03
ROTATION_0_ANGLE = 0x00
ROTATION_STACKED = 0xFF #
WRAP_AT_RIGHT = 0x01 #
NOT_WRAP_AT_RIGHT = 0x00 #
SHRINK_TO_FIT = 0x01 #
NOT_SHRINK_TO_FIT = 0x00 #
def __init__(self):
self.horz = self.HORZ_GENERAL # ,
self.vert = self.VERT_BOTTOM # ,
self.dire = self.DIRECTION_GENERAL
self.orie = self.ORIENTATION_NOT_ROTATED
self.rota = self.ROTATION_0_ANGLE
self.wrap = self.NOT_WRAP_AT_RIGHT # ,
self.shri = self.NOT_SHRINK_TO_FIT # , 。
self.inde = 0
self.merg = 0
2.1以下は小さな例です。
import xlwt
#
workbook = xlwt.Workbook(encoding = 'utf-8')
# Worksheet
worksheet = workbook.add_sheet('work_sheet')
#
xstyle = xlwt.XFStyle()
#
xfont = xlwt.Font()
xfont.colour_index = 0x04 #
xfont.bold = True #
xfont.height = 20 * 18 # (20 ,18 )
xfont.name = ' ' #
#
xalig = xlwt.Alignment()
xalig.horz = 0x02 #
xalig.vert = 0x01 #
#
xstyle.font = xfont
xstyle.alignment = xalig
for i in range(3):
for j in range(3):
# ( , , , )
worksheet.write(i,j, label = 'test_'+str(j),style=xstyle)
#
workbook.save(r'i:\2.xls')
すべてがうまくいけば、次のように見えます。3、Border類概要
class Borders(object):
NO_LINE = 0x00 #
THIN = 0x01 #
MEDIUM = 0x02 #
DASHED = 0x03 #
DOTTED = 0x04 #
THICK = 0x05 #
DOUBLE = 0x06 #
HAIR = 0x07 #
#The following for BIFF8
MEDIUM_DASHED = 0x08 #
THIN_DASH_DOTTED = 0x09 #
MEDIUM_DASH_DOTTED = 0x0A #
THIN_DASH_DOT_DOTTED = 0x0B #
MEDIUM_DASH_DOT_DOTTED = 0x0C #
SLANTED_MEDIUM_DASH_DOTTED = 0x0D #
NEED_DIAG1 = 0x01
NEED_DIAG2 = 0x01
NO_NEED_DIAG1 = 0x00
NO_NEED_DIAG2 = 0x00
def __init__(self):
#
self.left = self.NO_LINE
self.right = self.NO_LINE
self.top = self.NO_LINE
self.bottom = self.NO_LINE
self.diag = self.NO_LINE #
#
self.left_colour = 0x40
self.right_colour = 0x40
self.top_colour = 0x40
self.bottom_colour = 0x40
self.diag_colour = 0x40
#
self.need_diag1 = self.NO_NEED_DIAG1
self.need_diag2 = self.NO_NEED_DIAG2
3.1下は枠線の小さい例です。
import xlwt
#
workbook = xlwt.Workbook(encoding = 'utf-8')
# Worksheet
worksheet = workbook.add_sheet('work_sheet')
#
xstyle = xlwt.XFStyle()
#
xfont = xlwt.Font()
xfont.colour_index = 0x04 #
xfont.bold = True #
xfont.height = 20 * 18 # (20 ,18 )
xfont.name = ' ' #
#
xalig = xlwt.Alignment()
xalig.horz = 0x02 #
xalig.vert = 0x01 #
#
xborder = xlwt.Borders()
# ,
xborder.left = 0x0d
xborder.top = 0x0d
xborder.right = 0x0d
xborder.bottom = 0x0d
#
xborder.bottom_colour = 0x35
xborder.top_colour = 0x8
xborder.left_colour = 0x012
xborder.right_colour = 0x4
#
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
for i in range(3):
for j in range(3):
# ( , , , )
worksheet.write(i,j, label = 'test_'+str(j),style=xstyle)
#
workbook.save(r'i:\2.xls')
最終的に次のように見えます。4、背景類Background概要
class Pattern(object):
# patterns 0x00 - 0x12
NO_PATTERN = 0x00
SOLID_PATTERN = 0x01
def __init__(self):
self.pattern = self.NO_PATTERN # , ,pattern_fore_colour pattern_back_colour
self.pattern_fore_colour = 0x40 #
self.pattern_back_colour = 0x41 #
4.1以下では、小さい例を示します。
import xlwt
#
workbook = xlwt.Workbook(encoding = 'utf-8')
# Worksheet
worksheet = workbook.add_sheet('work_sheet')
#
xstyle = xlwt.XFStyle()
#
xfont = xlwt.Font()
xfont.colour_index = 0x04 #
xfont.bold = True #
xfont.height = 20 * 18 # (20 ,18 )
xfont.name = ' ' #
#
xalig = xlwt.Alignment()
xalig.horz = 0x02 #
xalig.vert = 0x01 #
#
xborder = xlwt.Borders()
# ,
xborder.left = 0x0d
xborder.top = 0x0d
xborder.right = 0x0d
xborder.bottom = 0x0d
#
xborder.bottom_colour = 0x35
xborder.top_colour = 0x8
xborder.left_colour = 0x012
xborder.right_colour = 0x4
#
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
#
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
for i in range(3):
for j in range(3):
# ( , , , )
worksheet.write(i,j, label = 'test_'+str(j),style=xstyle)
#
workbook.save(r'i:\2.xls')
最終的には下の図のように見えます。上記は簡単にxlwtの基本的な方法を紹介しただけで、まだ多くの方法機能が挙げられていないので、ここでは一つ一つ列挙しません。興味のある仲間は自分でソースを見て自分の欲しい機能を実現します。
三、いくつかのよく使う方法の紹介
1、セルの行の高さ、列の幅を設定します。
現在は良い方法が見つかりませんでした。列ごとに設定するしかありません。コードは以下の通りです
import xlwt
#
workbook = xlwt.Workbook(encoding = 'utf-8')
# Worksheet
worksheet = workbook.add_sheet('work_sheet')
#
xstyle = xlwt.XFStyle()
#
xfont = xlwt.Font()
xfont.colour_index = 0x04 #
xfont.bold = True #
xfont.height = 20 * 18 # (20 ,18 )
xfont.name = ' ' #
#
xalig = xlwt.Alignment()
xalig.horz = 0x02 #
xalig.vert = 0x01 #
#
xborder = xlwt.Borders()
# ,
xborder.left = 0x0d
xborder.top = 0x0d
xborder.right = 0x0d
xborder.bottom = 0x0d
#
xborder.bottom_colour = 0x35
xborder.top_colour = 0x8
xborder.left_colour = 0x012
xborder.right_colour = 0x4
#
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
#
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
for i in range(3):
#
worksheet.row(i).height_mismatch = True
worksheet.row(i).height = 20 * 30 # 20 *30
for j in range(3):
# ( , , , )
data = 'test_'+str(j)
worksheet.col(j).width = 256 * len(data) * 2 # , :256 * *2 。
worksheet.write(i,j, label = data,style=xstyle)
#
workbook.save(r'i:\2.xls')
最終的には次のような効果が見られます。2、セルに日付を表示します。コードは以下の通りです。
import xlwt
import datetime
#
workbook = xlwt.Workbook(encoding = 'utf-8')
# Worksheet
worksheet = workbook.add_sheet('work_sheet')
#
xstyle = xlwt.XFStyle()
#
xfont = xlwt.Font()
xfont.colour_index = 0x04 #
xfont.bold = True #
xfont.height = 20 * 18 # (20 ,18 )
xfont.name = ' ' #
#
xalig = xlwt.Alignment()
xalig.horz = 0x02 #
xalig.vert = 0x01 #
#
xborder = xlwt.Borders()
# ,
xborder.left = 0x0d
xborder.top = 0x0d
xborder.right = 0x0d
xborder.bottom = 0x0d
#
xborder.bottom_colour = 0x35
xborder.top_colour = 0x8
xborder.left_colour = 0x012
xborder.right_colour = 0x4
#
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
#
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
xstyle.num_format_str = 'M/D/YY' # , , 。
for i in range(3):
#
worksheet.row(i).height_mismatch = True
worksheet.row(i).height = 20 * 30 # 20 *30
for j in range(3):
# ( , , , )
data = datetime.datetime.now() #
worksheet.col(j).width = 256 * len(data.strftime('%Y-%m-%d')) * 2 # :256 * *2 。
worksheet.write(i,j, label = data,style=xstyle)
#
workbook.save(r'i:\2.xls')
もしすべてがうまくいけば、次のようになります。財務またはその他の日時、小数、科学カウントなどの表示形式については、以下のオプションを参照してください。
_std_num_fmt_list = [
'general', # , 。
'0',
'0.00',
'#,##0',
'#,##0.00',
'"$"#,##0_);("$"#,##0)',
'"$"#,##0_);[Red]("$"#,##0)',
'"$"#,##0.00_);("$"#,##0.00)',
'"$"#,##0.00_);[Red]("$"#,##0.00)',
'0%',
'0.00%',
'0.00E+00',
'# ?/?',
'# ??/??',
'M/D/YY', #
'D-MMM-YY',
'D-MMM',
'MMM-YY',
'h:mm AM/PM',
'h:mm:ss AM/PM',
'h:mm',
'h:mm:ss',
'M/D/YY h:mm',
'_(#,##0_);(#,##0)',
'_(#,##0_);[Red](#,##0)',
'_(#,##0.00_);(#,##0.00)',
'_(#,##0.00_);[Red](#,##0.00)',
'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',
'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',
'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',
'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',
'mm:ss',
'[h]:mm:ss',
'mm:ss.0',
'##0.0E+0',
'@'
]
xstyle.num_format_str = 'M/D/YY' # 。
3、Excelテーブルに数式を挿入すると、コードは以下の通りです。
import xlwt
#
workbook = xlwt.Workbook(encoding = 'utf-8')
# Worksheet
worksheet = workbook.add_sheet('work_sheet')
#
xstyle = xlwt.XFStyle()
#
xfont = xlwt.Font()
xfont.colour_index = 0x04 #
xfont.bold = True #
xfont.height = 20 * 18 # (20 ,18 )
xfont.name = ' ' #
#
xalig = xlwt.Alignment()
xalig.horz = 0x02 #
xalig.vert = 0x01 #
#
xborder = xlwt.Borders()
# ,
xborder.left = 0x0d
xborder.top = 0x0d
xborder.right = 0x0d
xborder.bottom = 0x0d
#
xborder.bottom_colour = 0x35
xborder.top_colour = 0x8
xborder.left_colour = 0x012
xborder.right_colour = 0x4
#
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
#
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
for i in range(3):
#
worksheet.row(i).height_mismatch = True
worksheet.row(i).height = 20 * 30 # 20 *30
for j in range(3):
# ( , , , )
worksheet.write(i,j, label = int(j)+1,style=xstyle)
#
worksheet.row(3).height_mismatch = True
worksheet.row(3).height = 20 * 30 # 20 *30
worksheet.write(3,0, label = xlwt.Formula('SUM(A1:A3)'),style=xstyle) #
worksheet.write(3,1, label = xlwt.Formula('B1*B2*B3'),style=xstyle) #
worksheet.write(3,2, label = xlwt.Formula('AVERAGE(C1:C3)'),style=xstyle) #
#
workbook.save(r'i:\2.xls')
最終的には次のような効果が見られます。4、テーブルにハイパーリンクを挿入します。コードは以下の通りです。
import xlwt
#
workbook = xlwt.Workbook(encoding = 'utf-8')
# Worksheet
worksheet = workbook.add_sheet('work_sheet')
#
xstyle = xlwt.XFStyle()
#
xfont = xlwt.Font()
xfont.colour_index = 0x04 #
xfont.bold = True #
xfont.height = 20 * 18 # (20 ,18 )
xfont.name = ' ' #
#
xalig = xlwt.Alignment()
xalig.horz = 0x02 #
xalig.vert = 0x01 #
#
xborder = xlwt.Borders()
# ,
xborder.left = 0x0d
xborder.top = 0x0d
xborder.right = 0x0d
xborder.bottom = 0x0d
#
xborder.bottom_colour = 0x35
xborder.top_colour = 0x8
xborder.left_colour = 0x012
xborder.right_colour = 0x4
#
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
#
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
#
worksheet.row(0).height_mismatch = True
worksheet.row(0).height = 20 * 30 # 20 *30
a_data = 'HYPERLINK("http://www.baidu.com";"baidu")' # ,'baidu' Excel 。
worksheet.col(0).width = 256 * len(a_data) * 2 #
worksheet.write(0,0, label = xlwt.Formula(a_data),style=xstyle) #
#
workbook.save(r'i:\2.xls')
すべてがうまくいけば、次のように見えます。5、カラーマップについては以下の通りです。
_colour_map_text = """\
aqua 0x31
black 0x08
blue 0x0C
blue_gray 0x36
bright_green 0x0B
brown 0x3C
coral 0x1D
cyan_ega 0x0F
dark_blue 0x12
dark_blue_ega 0x12
dark_green 0x3A
dark_green_ega 0x11
dark_purple 0x1C
dark_red 0x10
dark_red_ega 0x10
dark_teal 0x38
dark_yellow 0x13
gold 0x33
gray_ega 0x17
gray25 0x16
gray40 0x37
gray50 0x17
gray80 0x3F
green 0x11
ice_blue 0x1F
indigo 0x3E
ivory 0x1A
lavender 0x2E
light_blue 0x30
light_green 0x2A
light_orange 0x34
light_turquoise 0x29
light_yellow 0x2B
lime 0x32
magenta_ega 0x0E
ocean_blue 0x1E
olive_ega 0x13
olive_green 0x3B
orange 0x35
pale_blue 0x2C
periwinkle 0x18
pink 0x0E
plum 0x3D
purple_ega 0x14
red 0x0A
rose 0x2D
sea_green 0x39
silver_ega 0x16
sky_blue 0x28
tan 0x2F
teal 0x15
teal_ega 0x15
turquoise 0x0F
violet 0x14
white 0x09
yellow 0x0D"""
はい!ここまで簡単に書きましょう。後で何か面白い機能を見つけて、引き続き補充しています。以上がpython xlwtモジュールの使用解析の詳細です。python xlwtモジュールの使用に関する資料は他の関連記事に注目してください。