九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Pandas專(zhuān)家總結(jié):指定樣式保存excel數(shù)據(jù)的 “N種” 姿勢(shì)!

作者:小小明


簡(jiǎn)介:Pandas數(shù)據(jù)處理專(zhuān)家,10余年編碼經(jīng)驗(yàn),至今已幫助過(guò)百名以上數(shù)據(jù)從業(yè)人員解決工作實(shí)際遇到的問(wèn)題,其中數(shù)據(jù)處理和辦公自動(dòng)化問(wèn)題涉及的行業(yè)包括會(huì)計(jì)、審計(jì)、HR、氣象工作人員、教師、律師、運(yùn)營(yíng),以及各行業(yè)的數(shù)據(jù)分析師和專(zhuān)做數(shù)據(jù)分析案例的公眾號(hào)號(hào)主。

若你在數(shù)據(jù)處理的問(wèn)題上遇到什么困難,歡迎與我交流。

目錄

  • 準(zhǔn)備數(shù)據(jù)

  • Pandas直接保存數(shù)據(jù)

  • Pandas的Styler對(duì)表格著色輸出

  • Pandas使用xlsxwriter引擎保存數(shù)據(jù)

  • xlsxwriter按照指定樣式寫(xiě)出Pandas對(duì)象的數(shù)據(jù)

  • Pandas自適應(yīng)列寬保存數(shù)據(jù)

  • 相關(guān)資料

  • 總結(jié)

準(zhǔn)備數(shù)據(jù)

import pandas as pd
from datetime import datetime, date
df = pd.DataFrame({'Date and time': [datetime(201511113055),
                                     datetime(20151212033),
                                     datetime(2015131110),
                                     datetime(201514164535),
                                     datetime(201515121015)],
                   'Dates only': [date(201521),
                                  date(201522),
                                  date(201523),
                                  date(201524),
                                  date(201525)],
                   'Numbers': [10102020303020201515],
                   'Percentage': [.1.2.33.25.5],
                   })
df['final'] = [f'=C{i}*D{i}' for i in range(2, df.shape[0]+2)]
df

結(jié)果:


Date and timeDates onlyNumbersPercentagefinal
02015/1/1 11:302015/2/110100.1=C2*D2
12015/1/2 1:202015/2/220200.2=C3*D3
22015/1/3 11:102015/2/330300.33=C4*D4
32015/1/4 16:452015/2/420200.25=C5*D5
42015/1/5 12:102015/2/515150.5=C6*D6

Pandas直接保存數(shù)據(jù)

對(duì)于這個(gè)pandas對(duì)象,如果我們需要將其保存為excel,有那些操作方式呢?首先,最簡(jiǎn)單的,直接保存:

df.to_excel('demo1.xlsx', sheet_name='Sheet1', index=False)

效果如下:

但如果我們想要給這個(gè)excel在保存時(shí),同時(shí)指定一些特殊的自定義格式又該怎么做呢?這時(shí)就可以使用ExcelWriter進(jìn)行操作,查看API文檔發(fā)現(xiàn)兩個(gè)重要參數(shù):

  • date_format : str, default None

    Format string for dates written into Excel files (e.g. 'YYYY-MM-DD').

  • datetime_format : str, default None

    Format string for datetime objects written into Excel files. (e.g. 'YYYY-MM-DD HH:MM:SS').

這說(shuō)明對(duì)于日期類(lèi)型數(shù)據(jù),都可以通過(guò)這兩個(gè)參數(shù)指定特定的顯示格式,那么我們采用以下方式才創(chuàng)建ExcelWriter,并保存結(jié)果:

writer = pd.ExcelWriter('demo1.xlsx',
                        datetime_format='mmm d yyyy hh:mm:ss',
                        date_format='mmmm dd yyyy')
df.to_excel(writer, sheet_name='Sheet1', index=False)
writer.save()

可以看到excel保存的結(jié)果中,格式已經(jīng)確實(shí)的發(fā)生了改變:

Pandas的Styler對(duì)表格著色輸出

如果我們想對(duì)指定的列的數(shù)據(jù)設(shè)置文字顏色或背景色,可以直接pandas.io.formats.style工具,該工具可以直接對(duì)指定列用指定的規(guī)則著色:

df_style = df.style.applymap(lambda x: 'color:red', subset=['Date and time']) \
    .applymap(lambda x: 'color:green', subset=['Dates only']) \
    .applymap(lambda x: 'background-color:#ADD8E6', subset=['Numbers']) \
    .background_gradient(cmap='PuBu', low=0, high=0.5, subset=['Percentage'])
df_style

顯示效果:


writer = pd.ExcelWriter('demo_style.xlsx',
                        datetime_format='mmm d yyyy hh:mm:ss',
                        date_format='mmmm dd yyyy')
df_style.to_excel(writer, sheet_name='Sheet1', index=False)
writer.save()

保存效果:

雖然Pandas的Styler樣式還包括設(shè)置顯示格式、條形圖等功能,但寫(xiě)入到excel卻無(wú)效,所以我們只能借助Pandas的Styler實(shí)現(xiàn)作色的功能,而且只能對(duì)數(shù)據(jù)著色,不能對(duì)表頭作色。

Pandas使用xlsxwriter引擎保存數(shù)據(jù)

進(jìn)一步的,我們需要將數(shù)值等其他類(lèi)型的數(shù)據(jù)也修改一下顯示格式,這時(shí)就需要從ExcelWriter拿出其中的workbook進(jìn)行操作:

writer = pd.ExcelWriter('demo1.xlsx')
workbook = writer.book
workbook

結(jié)果:

<xlsxwriter.workbook.Workbook at 0x52fde10>

從返回的結(jié)果可以看到這是一個(gè)xlsxwriter對(duì)象,說(shuō)明pandas默認(rèn)的excel寫(xiě)出引擎是xlsxwriter,即上面的ExcelWriter創(chuàng)建代碼其實(shí)等價(jià)于:

pd.ExcelWriter('demo1.xlsx', engine='xlsxwriter')

關(guān)于xlsxwriter可以參考官方文檔:https://xlsxwriter.readthedocs.org/

下面的代碼即可給數(shù)值列設(shè)置特定的格式:

writer = pd.ExcelWriter('demo1.xlsx',
                        engine='xlsxwriter',
                        datetime_format='mmm d yyyy hh:mm:ss',
                        date_format='mmmm dd yyyy')
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']

worksheet.set_column('A:A'19)
worksheet.set_column('B:B'17)

format1 = workbook.add_format({'num_format''#,##0.00'})
format2 = workbook.add_format({'num_format''0%'})
worksheet.set_column('C:C'8, format1)
worksheet.set_column('D:D'11, format2)
worksheet.set_column('E:E'6, format1)

writer.save()

效果:

關(guān)于set_column方法:

worksheet.set_column('C:C', 8, format1) 表示將C列的列寬設(shè)置為8個(gè)字符,并采用format1的樣式,當(dāng)然 format1 = workbook.add_format({'num_format': '#,##0.00'}) 就是表示生成一個(gè)指定的格式對(duì)象。

xlsxwriter按照指定樣式寫(xiě)出Pandas對(duì)象的數(shù)據(jù)

假如,我現(xiàn)在希望能夠定制excel表頭的樣式,并給數(shù)據(jù)添加邊框。我翻遍了xlsxwriter的API文檔發(fā)現(xiàn),并沒(méi)有一個(gè)可以修改指定范圍樣式的API,要修改樣式只能通過(guò)set_column修改列,或者通過(guò)set_row修改行,這種形式的修改都是針對(duì)整行和整列,對(duì)于顯示格式還能滿(mǎn)足條件,但對(duì)于背景色和邊框之類(lèi)的樣式就不行了,這點(diǎn)上確實(shí)不如openpyxl方便,但xlsxwriter還有個(gè)優(yōu)勢(shì),就是寫(xiě)出數(shù)據(jù)時(shí)可以直接指定樣式。

下面看看如何直接通過(guò)xlsxwriter保存指定樣式的數(shù)據(jù)吧:

import xlsxwriter

workbook = xlsxwriter.Workbook('demo2.xlsx')
worksheet = workbook.add_worksheet('sheet1')
# 創(chuàng)建列名的樣式
header_format = workbook.add_format({
    'bold'True,
    'text_wrap'True,
    'valign''top',
    'fg_color''#D7E4BC',
    'border'1})
# 從A1單元格開(kāi)始寫(xiě)出一行數(shù)據(jù),指定樣式為header_format
worksheet.write_row(00,  df.columns, header_format)
# 創(chuàng)建一批樣式對(duì)象
format1 = workbook.add_format({'border'1'num_format''mmm d yyyy hh:mm:ss'})
format2 = workbook.add_format({'border'1'num_format''mmmm dd yyyy'})
format3 = workbook.add_format({'border'1'num_format''#,##0.00'})
format4 = workbook.add_format({'border'1'num_format''0%'})

# 從第2行(角標(biāo)從0開(kāi)始)開(kāi)始,分別寫(xiě)出每列的數(shù)據(jù),并指定特定的樣式
worksheet.write_column(10, df.iloc[:, 0], format1)
worksheet.write_column(11, df.iloc[:, 1], format2)
worksheet.write_column(12, df.iloc[:, 2], format3)
worksheet.write_column(13, df.iloc[:, 3], format4)
worksheet.write_column(14, df.iloc[:, 4], format3)

# 設(shè)置對(duì)應(yīng)列的列寬,單位是字符長(zhǎng)度
worksheet.set_column('A:A'19)
worksheet.set_column('B:B'17)
worksheet.set_column('C:C'8)
worksheet.set_column('D:D'12)
worksheet.set_column('E:E'6)

workbook.close()

上面的代碼應(yīng)該都比較好理解,header_format和formatN是創(chuàng)建的樣式對(duì)象,write_row用于按行寫(xiě)出數(shù)據(jù),write_column用于按列寫(xiě)出數(shù)據(jù),set_column則是用于設(shè)置整列的列寬和樣式(沒(méi)傳入的不設(shè)置)。

運(yùn)行結(jié)果如下:

Pandas使用openpyxl引擎保存數(shù)據(jù)

pandas的默認(rèn)寫(xiě)出引擎是xlsxwriter,那么是不是可以修改為其他引擎呢?答案是可以,下面我們使用 openpyxl 實(shí)現(xiàn)同樣的效果。

關(guān)于openpyxl可參考:https://openpyxl.readthedocs.org/

也可以直接參考黃同學(xué)編寫(xiě)的文檔(中文,相對(duì)也比較全面):https://blog.csdn.net/weixin_41261833/article/details/106028038

writer = pd.ExcelWriter('demo3.xlsx',
                        engine='openpyxl',
                        datetime_format='mmm d yyyy hh:mm:ss',
                        date_format='mmmm dd yyyy')
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
workbook

結(jié)果:

<openpyxl.workbook.workbook.Workbook at 0x16c6bb70>

從上述打印結(jié)果可以看到,從engine指定為'openpyxl'后,workbook已經(jīng)是 openpyxl 對(duì)象了。

與 xlsxwriter 不同的是 openpyxl 只能對(duì)逐個(gè)單元格設(shè)置樣式,而xlsxwriter只能指定行或指定列或?qū)懭霐?shù)據(jù)指定樣式。

下面首先修改表頭的樣式:

import itertools
from openpyxl.styles import Alignment, Font, PatternFill, Border, Side, PatternFill

font = Font(name='微軟雅黑', bold=True)
alignment = Alignment(vertical='top', wrap_text=True)
pattern_fill = PatternFill(fill_type='solid', fgColor='D7E4BC')
side = Side(style='thin')
border = Border(left=side, right=side, top=side, bottom=side)

for cell in itertools.chain(*worksheet['A1:E1']):
    cell.font = font
    cell.alignment = alignment
    cell.fill = pattern_fill
    cell.border = border

上述代碼引入的了itertools.chain方便迭代出每個(gè)單元格,而不用寫(xiě)多重for循環(huán)。

下面再修改數(shù)值列的格式:

for cell in itertools.chain(*worksheet['A2:E6']):
    cell.border = border
for cell in itertools.chain(*worksheet['C2:C6'], *worksheet['E2:E6']):
    cell.number_format = '#,##0.00'
for cell in itertools.chain(*worksheet['D2:D6']):
    cell.number_format = '0%'

最后給各列設(shè)置一下列寬:

worksheet.column_dimensions['A'].width = 20
worksheet.column_dimensions['B'].width = 17
worksheet.column_dimensions['C'].width = 10
worksheet.column_dimensions['D'].width = 12
worksheet.column_dimensions['E'].width = 8

最后保存即可:

writer.save()

整體完整代碼:

from openpyxl.styles import Alignment, Font, PatternFill, Border, Side, PatternFill
import itertools

writer = pd.ExcelWriter('demo3.xlsx',
                        engine='openpyxl',
                        datetime_format='mmm d yyyy hh:mm:ss',
                        date_format='mmmm dd yyyy')
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']

font = Font(name='微軟雅黑', bold=True)
alignment = Alignment(vertical='top', wrap_text=True)
pattern_fill = PatternFill(fill_type='solid', fgColor='D7E4BC')
side = Side(style='thin')
border = Border(left=side, right=side, top=side, bottom=side)

for cell in itertools.chain(*worksheet['A1:E1']):
    cell.font = font
    cell.alignment = alignment
    cell.fill = pattern_fill
    cell.border = border

for cell in itertools.chain(*worksheet['A2:E6']):
    cell.border = border
for cell in itertools.chain(*worksheet['C2:C6'], *worksheet['E2:E6']):
    cell.number_format = '#,##0.00'
for cell in itertools.chain(*worksheet['D2:D6']):
    cell.number_format = '0%'

worksheet.column_dimensions['A'].width = 20
worksheet.column_dimensions['B'].width = 17
worksheet.column_dimensions['C'].width = 10
worksheet.column_dimensions['D'].width = 12
worksheet.column_dimensions['E'].width = 8

writer.save()

最終效果:

從上述代碼可以看到,openpyxl 修改樣式時(shí)相對(duì)xlsxwriter來(lái)說(shuō)麻煩了太多,特別是修改一個(gè)表頭就需要?jiǎng)?chuàng)建5個(gè)對(duì)象。

openpyxl加載數(shù)據(jù)模板寫(xiě)出Pandas對(duì)象的數(shù)據(jù)

雖然 openpyxl 直接寫(xiě)出數(shù)據(jù)指定樣式相對(duì)xlsxwriter麻煩,但 openpyxl 還有個(gè)巨大的優(yōu)勢(shì)就是可以讀取已有的excel文件,在其基礎(chǔ)上修改。

那我們就完全可以先將模板數(shù)據(jù)寫(xiě)入到一個(gè)excel,然后加載這個(gè)模板文件進(jìn)行修改,所以上面那個(gè)固定不變的表頭,我們就可以事先創(chuàng)建好:

然后加載模板,再寫(xiě)入:

(經(jīng)測(cè)試ExcelWriter無(wú)法對(duì)已經(jīng)存在的工作表進(jìn)行操作,會(huì)創(chuàng)建新的工作表,所以這里直接使用openpyxl自己的API)

from openpyxl import load_workbook
workbook = load_workbook('template.xlsx')
worksheet = workbook['Sheet1']
# 添加數(shù)據(jù)列,i表示當(dāng)前的行號(hào),用于后續(xù)格式設(shè)置
for i, row in enumerate(df.values, 2):
    worksheet.append(row.tolist())

# 批量修改給寫(xiě)入的數(shù)據(jù)的單元格范圍加邊框
side = Side(style='thin')
border = Border(left=side, right=side, top=side, bottom=side)
for cell in itertools.chain(*worksheet[f'A2:E{i}']):
    cell.border = border
    
# 批量給各列設(shè)置指定的自定義格式
for cell in itertools.chain(*worksheet[f'A2:A{i}']):
    cell.number_format = 'mmm d yyyy hh:mm:ss'
for cell in itertools.chain(*worksheet[f'B2:B{i}']):
    cell.number_format = 'mmmm dd yyyy'
for cell in itertools.chain(*worksheet[f'C2:C{i}'], *worksheet[f'E2:E{i}']):
    cell.number_format = '#,##0.00'
for cell in itertools.chain(*worksheet[f'D2:D{i}']):
    cell.number_format = '0%'

workbook.save(filename='demo4.xlsx')

最終效果:

可以明顯的看到openpyxl在加載模板后,可以省掉表頭設(shè)置和列寬設(shè)置的代碼。

Pandas自適應(yīng)列寬保存數(shù)據(jù)

大多數(shù)時(shí)候我們并不需要設(shè)置自定義樣式,也不需要寫(xiě)出公式字符串,而是直接寫(xiě)出最終的結(jié)果文本,這時(shí)我們就可以使用pandas計(jì)算一下各列的列寬再保存excel數(shù)據(jù)。

例如我們有如下數(shù)據(jù):

df = pd.DataFrame({
    'Region': ['East''East''South''North''West''South''North''West''West''South''West''South'],
    'Item': ['Apple''Apple''Orange''Apple''Apple''Pear''Pear''Orange''Grape''Pear''Grape',
             'Orange'],
    'Volume': [9000500090002000900070009000100010001000060003000],
    'Month': ['July''July''September''November''November''October''August''December''November''April',
              'January''May']
})
df

結(jié)果:


RegionItemVolumeMonth
0EastApple9000July
1EastApple5000July
2SouthOrange9000September
3NorthApple2000November
4WestApple9000November
5SouthPear7000October
6NorthPear9000August
7WestOrange1000December
8WestGrape1000November
9SouthPear10000April
10WestGrape6000January
11SouthOrange3000May

使用pandas來(lái)進(jìn)行計(jì)算各列列寬,思路是計(jì)算出每列的字符串gbk編碼(Windows下的Excel軟件默認(rèn)使用gbk編碼)后的最大字節(jié)長(zhǎng)度:

#  計(jì)算表頭的字符寬度
column_widths = (
    df.columns.to_series()
    .apply(lambda x: len(x.encode('gbk'))).values
)
#  計(jì)算每列的最大字符寬度
max_widths = (
    df.astype(str)
    .applymap(lambda x: len(x.encode('gbk')))
    .agg(max).values
)
# 計(jì)算整體最大寬度
widths = np.max([column_widths, max_widths], axis=0)
widths

結(jié)果:

array([6, 6, 6, 9], dtype=int64)

下面將改造一下前面的代碼。

首先,使用xlsxwriter引擎自適應(yīng)列寬保存數(shù)據(jù):

writer = pd.ExcelWriter('auto_column_width1.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
worksheet = writer.sheets['Sheet1']

for i, width in enumerate(widths):
    worksheet.set_column(i, i, width)

writer.save()

然后,使用openpyxl引擎自適應(yīng)列寬保存數(shù)據(jù)(openpyxl引擎設(shè)置字符寬度時(shí)會(huì)縮水0.5左右個(gè)字符,所以干脆+1):

from openpyxl.utils import get_column_letter

writer = pd.ExcelWriter('auto_column_width2.xlsx', engine='openpyxl')
df.to_excel(writer, sheet_name='Sheet1', index=False)
worksheet = writer.sheets['Sheet1']

for i, width in enumerate(widths, 1):
    worksheet.column_dimensions[get_column_letter(i)].width = width+1

writer.save()

結(jié)果:

可以看到列寬設(shè)置的都比較準(zhǔn)確。

相關(guān)資料

1. python讀寫(xiě)Excel文件的那些庫(kù)

來(lái)源:http://www.python-excel.org/

  • openpyxl

讀取和寫(xiě)入EXCEL2010文件的包(即.xlsx)

文檔:https://openpyxl.readthedocs.org/

  • xlsxwriter

擁有豐富的特性,支持圖片/表格/圖表/篩選/格式/公式等,功能與openpyxl相似,優(yōu)點(diǎn)是相比 openpyxl 還支持 VBA 文件導(dǎo)入,迷你圖等功能,缺點(diǎn)是不能打開(kāi)/修改已有文件,意味著使用 xlsxwriter 需要從零開(kāi)始。支持EXCEL2010文件(即.xlsx) 文檔:https://xlsxwriter.readthedocs.org/GitHub:https://github.com/jmcnamara/XlsxWriter

  • pyxlsb

專(zhuān)門(mén)用于讀取 xlsb格式的excel文件 GitHub:https://github.com/willtrnr/pyxlsb

  • pylightxl

用于讀取xlsx 和xlsm格式的excel文件,或?qū)懭?/span>xlsx格式的excel文件 文檔:https://pylightxl.readthedocs.io/en/latest/GitHub:https://github.com/PydPiper/pylightxl

  • xlrd

用于讀取xls格式的excel文件的庫(kù) 文檔:http://xlrd.readthedocs.io/en/latest/GitHub:https://github.com/python-excel/xlrd

  • xlwt

用于寫(xiě)入xls格式的excel文件的庫(kù) 文檔:http://xlwt.readthedocs.io/en/latest/Examples:https://github.com/python-excel/xlwt/tree/master/examplesGitHub:https://github.com/python-excel/xlwt

  • xlutils

用于配合xlrdxlwt的工具庫(kù),包括樣式的復(fù)制 文檔:http://xlutils.readthedocs.io/en/latest/GitHub:https://github.com/python-excel/xlutils


必須安裝 Microsoft Excel應(yīng)用程序后才能使用的庫(kù):

  • xlwings

xlwings是開(kāi)源,用Python替代VBA自動(dòng)化操作Excel,同時(shí)支持Windows和MacOS。在Windows平臺(tái)下,通過(guò)xlwings在Python中編寫(xiě)UDF可以實(shí)現(xiàn)在Excel中調(diào)用Python。xlwings PRO是一個(gè)具有附加功能的商業(yè)插件。

主頁(yè):https://www.xlwings.org/文檔:https://docs.xlwings.org/en/stable/GitHub:https://github.com/xlwings/xlwings

2. Excel單元格自定義格式參數(shù)含義

一、代碼結(jié)構(gòu)組

代碼結(jié)構(gòu)組成分為四個(gè)部分,中間用';'號(hào)分隔,具體如下:正數(shù)格式;負(fù)數(shù)格式;零格式;文本格式

二、各個(gè)參數(shù)的含義

1、'G/通用格式':以常規(guī)的數(shù)字顯示,相當(dāng)于'分類(lèi)'列表中的'常規(guī)'選項(xiàng)。

G/通用格式

10顯示為10;10.1顯示為10.1。

2、'0':數(shù)字占位符。如果單元格的內(nèi)容大于占位符,則顯示實(shí)際數(shù)字,如果小于點(diǎn)位符的數(shù)量,則用0補(bǔ)足。

00000

1234567顯示為1234567;123顯示為00123

00.000

100.14顯示為100.140;1.1顯示為01.100

0000-00-00

20050512顯示為2005-05-12

3、'#':數(shù)字占位符。只顯有意義的零而不顯示無(wú)意義的零。小數(shù)點(diǎn)后數(shù)字如大于'#'的數(shù)量,則按'#'的位數(shù)四舍五入。

###.##

12.1顯示為12.10;12.1263顯示為12.13

4、'?':數(shù)字占位符。在小數(shù)點(diǎn)兩邊為無(wú)意義的零添加空格,對(duì)齊結(jié)果為以小數(shù)點(diǎn)對(duì)齊,另外還用于對(duì)不等到長(zhǎng)數(shù)字的分?jǐn)?shù)。

??.??

結(jié)果自動(dòng)以小數(shù)點(diǎn)對(duì)齊:

#??/??

原數(shù)據(jù):

1.25
22.5
43.75
65

展示效果:

 5/4 
45/2 
175/4 
65/1 

5、'.':小數(shù)點(diǎn)。如果外加雙引號(hào)則為字符。

0.#

11.23顯示為11.2

6、'%':百分比。

#%

0.1顯示為10%

7、',':千位分隔符。數(shù)字使用千位分隔符。如在代碼中','后空,則把原來(lái)的數(shù)字縮小1000倍。

#,###

'10000'顯示為'10,000'

#,

'10000'顯示為'10'

#,,

'1000000'顯示為'1'

8、'@':文本占位符。如果只使用單個(gè)@,作用是引用原始文本,要在輸入數(shù)字?jǐn)?shù)據(jù)之前自動(dòng)添加文本,使用自定義格式為:'文本內(nèi)容'@;要在輸入數(shù)字?jǐn)?shù)據(jù)之后自動(dòng)添加文本,使用自定義格式為:@'文本內(nèi)容'。@符號(hào)的位置決定了Excel輸入的數(shù)字?jǐn)?shù)據(jù)相對(duì)于添加文本的位置。如果使用多個(gè)@,則可以重復(fù)文本。

'集團(tuán)'@'部'

財(cái)務(wù) 顯示為:集團(tuán)財(cái)務(wù)部

@@@

財(cái)務(wù) 顯示為:財(cái)務(wù)財(cái)務(wù)財(cái)務(wù)

9、*:重復(fù)下一次字符,直到充滿(mǎn)列寬。

@*-

'ABC'顯示為'ABC-------------------'(僅在office中生效,wps中無(wú)效果)

10、[顏色]:用指定的顏色顯示字符??捎邪朔N顏色可選:紅色、黑色、黃色,綠色、白色、蘭色、青色和洋紅。

[青色];[紅色];[黃色];[蘭色]

顯示結(jié)果為正數(shù)為青色,負(fù)數(shù)顯示紅色,零顯示黃色,文本則顯示為蘭色

11、[顏色N]:是調(diào)用調(diào)色板中顏色,N是0~56之間的整數(shù)。

[顏色3]

單元格顯示的顏色為調(diào)色板上第3種顏色。

12、[條件]:可以單元格內(nèi)容判斷后再設(shè)置格式。條件格式化只限于使用三個(gè)條件,其中兩個(gè)條件是明確的,另個(gè)是'所有的其他'。條件要放到方括號(hào)中。必須進(jìn)行簡(jiǎn)單的比較。

[>0]'正數(shù)';[=0]'零';'負(fù)數(shù)'

13、'!':顯示'''。由于引號(hào)是代碼常用的符號(hào)。在單元格中是無(wú)法用'''來(lái)顯示出來(lái)'''。要想顯示出來(lái),須在前加入'!'

#!'

'10'顯示'10''

#!'!'

'10'顯示'10'''

14、時(shí)間和日期代碼

  • 'YYYY'或'YY':按四位(1900~9999)或兩位(00~99)顯示年;

  • 'MM'或'M':以?xún)晌唬?1~12)或一位(1~12)表示月;

  • 'DD'或'D':以?xún)晌唬?1~31)或一位(1-31)來(lái)表示天;

  • 'YYYY-MM-DD'。2005年1月10日顯示為:'2005-01-10';

  • 'YY-M-D'。2005年10月10日顯示為:'05-1-10';

  • 'AAAA':日期顯示為星期;

  • 'H'或'HH':以一位(0~23)或兩位(01~23)顯示小時(shí);

  • 'M'或'MM':以一位(0~59)或兩位(01~59)顯示分鐘;

  • 'S'或'SS':以一位(0~59)或兩位(01~59)顯示秒;

  • 'HH:MM:SS':'23:1:15'顯示為'23:01:15';

總結(jié)

經(jīng)過(guò)上面的演示,大家應(yīng)該對(duì)openpyxlxlsxwriter都有了一個(gè)比較直觀的認(rèn)知,這兩個(gè)庫(kù)大家覺(jué)得到底哪個(gè)更方便呢?

歡迎在下方留言或討論。

介紹一本書(shū)

介紹一本??:《Python科學(xué)計(jì)算入門(mén)與實(shí)戰(zhàn)

第1簡(jiǎn)單公式的程序化,圍繞如何使用Python實(shí)現(xiàn)科學(xué)計(jì)算中簡(jiǎn)單公司的程序化;第2復(fù)雜公式程序化,重點(diǎn)介紹Python中的程序控制,將復(fù)雜的公式程序化;第3公式對(duì)象化,主要介紹Python中面向?qū)ο蟮某绦蛟O(shè)計(jì);第4公式向量化,全方位介紹Python*的科學(xué)計(jì)算庫(kù)NumPy的功能,并結(jié)合數(shù)組的可視化,讓讀者更輕松地理解和使用NumPy;第5公式可視化,介紹Python的高質(zhì)量二維繪圖庫(kù)Matplotlib的功能;第6公式中的隨機(jī)數(shù),介紹Python中如何生成并靈活使用隨機(jī)數(shù)和隨機(jī)數(shù)數(shù)組,并結(jié)合大量實(shí)例綜合應(yīng)用本書(shū)講解的內(nèi)容。本書(shū)適合Python科學(xué)計(jì)算的入門(mén)讀者和高校理工科專(zhuān)業(yè)的學(xué)生。

感謝機(jī)械工業(yè)出版社的支持!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Python商務(wù)辦公——使用python庫(kù)進(jìn)行Excel讀寫(xiě)
Python操作Excel 模塊,你猜哪家強(qiáng)?
Python如何實(shí)現(xiàn)Excel的最合適列寬(openpyxl)
Python|讀、寫(xiě)Excel文件(三種模塊三種方式)
python從數(shù)據(jù)庫(kù)取數(shù)據(jù)后寫(xiě)入excel 使用pandas.ExcelWriter設(shè)置單元格格式
Python Excel 讀寫(xiě)及追加寫(xiě)入(xlrd、xlwt、openpyxl、XlsxWriter)
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服