テーブルを書きます
日時輸入日から ランダムな輸入の選択肢から、randint openpyxlインポートワークブック、load_workbookから openpyxl.drawing.imageインポートイメージから openpyxl.stylesからボーダー、横、フォント、配置、インポートPatternFill openpyxl.comments輸入コメントから openpyxl.utils輸入単位から openpyxl.formula.translateインポートトランスレータから openpyxl.worksheet.datavalidationインポートDataValidationから openpyxl.styles.fillsからGradientFillをインポート openpyxl.worksheet.table輸入表から、TableStyleInfo openpyxl.chart輸入BarChartコントロール、円グラフ、リファレンスから openpyxl.worksheet.header_footer輸入_HeaderFooterPartから openpyxl.chart.seriesからのDataPointをインポート WB =ワークブック()#は、空白のブックを作成します。 #あなたがWRITE_ONLY = Trueの書き込み専用モードのパラメータを設定した場合、あなたは識字率を向上させることができます #しかし、この議論は、ブック内の任意の空白のワークシートが含まれていない可能 あなたはパラメータを設定しない場合は#、空白のブックは、空のテーブルが含まれています #すべてのワークシート・タイトルを見ます 印刷(wb.sheetnames) defaultws = wb.worksheets [0]#シーケンス番号はシートベンチマークを作成するために使用することができます 印刷(defaultws) タイトルdefaultws.title =「テーブルのタイトル」#設定ワークシート defaultws.sheet_properties.tabColor =色「88cc88」#カードの選択設定ワークシート WS1 = wb.create_sheet(「第一」、0)を直接作業テーブルを作成するタイトル番号を指定して、最初のテーブルの位置0 WS2 = wb.create_sheet( '最後') WS3 = wb.create_sheet( '最後から二番目'、-1)#最後から2番目の位置-1表インサート紙 WS = wb.active#がアクティブなシートを取得します。 ws.sheet_properties.tabColor = 'ff6666' WB [「最後から二番目の」] .sheet_properties.tabColor =「3333cc」位タイトル添字が直接ワークシートを配置するために使用することができます WS [「A1」] =「テキスト細胞」#細胞を標的添字、WRITE_ONLY =組Trueの場合、この形式は使用できません セル#フォントを設定WS [ 'A1']。フォント=フォント(名前= '中国Xingkai' サイズ= 36、#フォントのセルサイズを設定します #太字、太字=真 イタリック= Falseの、#はイタリックありません 下線=「なし」、#未下線 ストライキ=真、#取り消し線 色=「FFaa8844」)#セルのテキストの色 WS [ 'A1']アラインメント=アライメント(水平= '中央'、#セットセルの配置 縦=「下」 テキストのtext_rotation = 30、#30度回転 wrap_text =真、 shrink_to_fit = Falseの、 インデント= 0) WS [ 'A2'] = 3.14 WS [「A2」]フィル= GradientFill(タイプ=「線形」、使用色フィルセルに簡単# ストップ=(「00FFFF」、「FF0000」))グラデーション開始色および終了色を設定# WS [ 'A2']。ボーダー=ボーダー(左=サイド(スタイル= '中'、色= 'FF000000')、#セルの境界線 右側=サイド(スタイル= 'ダブル'、色= '00ff0000')、 トップ=サイド(スタイル= '厚い'、色= 'ff00ff00')、 下=サイド(スタイル= '厚い'、色= 'ff00ff00')) WS [ "A3"] = date.today()#書き込み日 WS [ 'A3']。埋める= GradientFill(TYPE = 'リニア'、#は、細胞を充填固定背景色の色を設定します ストップ=( '888888'、 '888888')) 行添字からws.cell(行= 1、カラム= 4、値= "= SUM(A1、A2)")#1が開始されています #write_only =真、書込み専用モードは、セルの使用()メソッドを許可しません セルのためのWS [ 'D1']。コメント=コメント(テキスト= '注釈コンテンツ'、著者= 'ztx_taylor')#コメント設定 WS [ 'D1']。comment.width = units.points_to_pixels(100)#設定された幅と高さの注意 幅と高さの注意設定WS [ 'D1']。comment.height = units.points_to_pixels(20)# 前回の決定からのアクセス#B、C列のすべてのセル、この時点では3行のみ、書き込み動作 WS内の列の[ 'B': 'C']:#スライス間隔閉じ 列のセルのために: cell.value = 'BC' アクセスライン#4の全ての細胞は、わずか4、前回の書き込み動作によって決定します WSのセルのための[4]: cell.value = 4 上記の書き込み動作によって決まるだけの4つのアクセスライン#5、全てのライン8細胞、 [5:8] WSの行のための: 行のセルのために: cell.value = 58 ws.append(範囲(10))#この方法プラスラインを使用= WRITE_ONLY、真のみシーケンシャル書き込みモードを追加することによって返されます ws.append([ ''、 'B'、 'C'、 'D'、 'E'])#ラインが添加されます #画像ファイルを開きます。 #IMG =画像( 'E:\旅行写真\画像素材\\ 789899.jpg') ##印刷(あなた(IMG)) ## img.height // = 3 ## img.width // = 3 #Ws.column_dimensions [ 'A']。幅= 30.0#セットセル幅 #Ws.row_dimensions [11] .height = 40.0#セットセルの高 #ws.add_image(IMG、 "A11") #設定選択ボックス #ワークシートのセルのための検証ルールを追加します。 DV = DataValidation(タイプ=「リスト」、#制約セルの内容は、リストで選択する必要があります formula1 = ' "赤、緑、青の"'、 allow_blank =真) dv.error =「コンテンツは、もはやリストではありません」 dv.errorTitle =「無効な入力」 dv.prompt =「リストから選択してください。」 dv.promptTitle = '1を選択します' C1 = WS [ "A12"] セルの範囲を設定dv.add(C1)#認証 ws.add_data_validation(DV)#検証ワークシートを追加 #サイズ制限デジタル入力を設定します。 DV = DataValidation(タイプ= '全体' 演算子=「演算子:GreaterThan」 formula1 = 100) dv.error =「100は、以上の整数の大きなを入力する必要があります」 dv.errorTitle =「無効な入力」 A13 = WS [ "A13"] dv.add(A13) ws.add_data_validation(DV) #本当の0と1の間の数、種類などを入力しても、日付の時間がかかるかもしれません DV = DataValidation(タイプ= '進' 演算子=「」の間、 Formula1 = 0、formula2 = 1) dv.error =「0と1の間の実数を入力する必要があります」 dv.errorTitle =「無効な入力」 A14 = WS [ 'A14'] dv.add(A14) ws.add_data_validation(DV) DV = DataValidation(TYPE = 'textLength'、#8は、以下のコンテンツの長さよりも オペレータは、= 'lessThanOrEqual'、#動作の値は、NOTEQUAL、greaterThanOrEqual、の間であってもよいです #lessThan、notBetween、lessThanOrEqual、等しい、演算子:GreaterThan formula1 = 8) dv.error =「内容は以下でなければなりません長さ8」 dv.errorTitle =「無効な入力」 A15 = WS [ 'A15'] dv.add(A15) ws.add_data_validation(DV) 二つの方法:( 'D4 A2')#はセルws2.merge_cellsを合併しました ws2.merge_cells(START_ROW = 5、start_column = 1、END_ROW = 8、end_column = 6) WS2 [ 'A10']値= 'A10' WS2 [ 'A11'] = 'A11' WS2 [ 'B10']値= 'B10' WS2 [ 'B11']値= 'B11' #openpyxlバージョンで使用するには何がバージョン2.5で使用することができます #Ws2.insert_cols(2)#は、第2の列Aに挿入され 11行目位Ws2.insert_rows(11,2)#位置二列に 連続消去2の第2行から#Ws2.delete_cols(2,2)#スタート カラム11からカラムを除去#Ws2.delete_rows(12,2)#2の連続した開始 #ws3.row_dimensions.group(3,10、隠された=真) defaultws.append(リスト(マップ(ラムダI: "第{}列" .format(I)、範囲(1,11)))+ [ '求和']) defaultws.append(選択肢(範囲(10,50)、K = 10)) defaultws [ 'K2'] = "= SUM(A2:J2)" (3,7)の範囲内のiについて: defaultws.append(選択肢(範囲(10,50)、K = 10)) 位置= 'K' + STR(I) #テーブルで選択したセルに対応する変換式が引き下げられ defaultws [位置] =トランスレータ(defaultws [ 'K2']値 起源= 'K2')。translate_formula(位置) チャート= BarChartコントロール()#は、ヒストグラムを作成します chart.add_data(参考(defaultws、#は、ヒストグラムを作成するために使用される細胞のワークシートの範囲を指定 min_col = 1、min_row = 1、max_col = 10、max_row = 6)、 ラベル伝説のテキストの最初の行のセルのtitles_from_data = TRUE)#範囲 chart.height * = 1.2 chart.width * = 1.2 defaultws.add_chart(チャート、 'A12') #円グラフを作成します。 チャート=円グラフ()#ラベル6のように第1フロント行を使用して、円グラフを作成し、6前データとして第2カラム chart.add_data(リファレンス(defaultws、min_col = 1、min_row = 2、max_col = 6)、 from_rows =真、#この行が重要である、デフォルト値はファレスラベルであり、データの要件は縦です titles_from_data =偽) chart.set_categories(リファレンス(defaultws、min_col = 1、min_row = 1、max_col = 6)) defaultws.add_chart(チャート、 'L1') (25,31)の範囲内のiについて: 位置= 'A' + STR(I) defaultws [位置] .VALUE =位置 defaultws [ 'B' + STR(I)] = randint(1100) チャート=円グラフ() lables =リファレンス(defaultws、範囲の文字列= 'デフォルトA25 :! A30')#設定領域および均等物min_col min_row データ=基準(=範囲の文字列defaultws、 'morenをB25:!B30') chart.add_data(データ、titles_from_data =偽) chart.dataLabels chart.title = 'パイ' chart.width //=1.5 chart.set_categories(lables) #パイの中心から最初のブロックと第3ブロックを離れてみましょう chart.series [0] .data_points =〔のDataPoint(IDX = 0、爆発= 20)、#IDX示しパイセクタ DataPoint(IDX = 2、爆発= 30)] defaultws.add_chart(チャート、 'D25') #裁判官ディレクトリが削除された再生成するだろう、ファイルを一度に保存するために存在します 輸入OS パス1 = 'F:\ my_pythontest \ sssss.xlsx' os.path.exists(パス1)の場合: os.remove(パス1) wb.save( 'sssss.xlsx') 他: wb.save( 'sssss.xlsx')