こんにちは。
またまた時間が開いての更新です。
今回は、「C#でエクセル(Kingsoft Spreadsheets)を使う2」ということで前回よりもちょっとだけパワーアップ?した内容を紹介します。
前回はこちら
C#でエクセル(Kingsoft Spreadsheets)を使う1
今回紹介していくのは
①データを出力するエクセルのフォーマットを作成する
②DataTableの中身をエクセルに出力する
です。
C# エクセル(Office)にdatatableの中身を出力 色、罫線付き
エクセルをC#で処理するときにMicrosoft.Office.Interop.Excelを参照追加して処理することが今のところ...
①フォーマット作成
出力するエクセルのフォーマットはこんな感じです。↓
「お料理のレシピをエクセルに出す」ということをします。
(エクセルのレイアウトはセンスが悪いせいか見にくいかもしれませんが、ご勘弁を…)
処理の内容はエクセルに写真のようにセルを結合させたり、色を付けるということです。
メソッドにしてシートを返すようにしています。
こんな感じで書きました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
public ET._Worksheet setRecipeExcelFormat() { //各変数を宣言 ET.Application appExcel = new ET.Application(); ET._Workbook xlWorkBook; ET._Worksheet xlWorkSheet; //シートを追加 xlWorkBook = appExcel.Workbooks.Add(); //EXCELシートを指定 xlWorkSheet = (ET._Worksheet )xlWorkBook.Sheets[1]; //EXCELシートの書式設定 xlWorkSheet.get_Range("A1", "H20").Font.Size = 11; xlWorkSheet.get_Range("A1", "H20").Font.Name = "MS Pゴシック"; //中央揃え xlWorkSheet.get_Range("A1", "H20").HorizontalAlignment = ETHAlign.etHAlignCenter; xlWorkSheet.get_Range("A1", "H20").VerticalAlignment = ETVAlign.etVAlignCenter; //列幅設定 xlWorkSheet.get_Range("A1", "C20").ColumnWidth = 20; //罫線を引く xlWorkSheet.get_Range("A1", "H20").Borders.LineStyle = ETLineStyle.etContinuous; //料理名 xlWorkSheet.Cells[1, 1].Value = "料理名"; xlWorkSheet.Cells[1, 1].Font.Bold = true; xlWorkSheet.Cells[1, 1].Interior.ColorIndex = 35; //料理カテゴリ xlWorkSheet.Cells[1, 2].Value = "料理カテゴリ"; xlWorkSheet.Cells[1, 2].Font.Bold = true; xlWorkSheet.Cells[1, 2].Interior.ColorIndex = 35; //対象人数 xlWorkSheet.Cells[1, 3].Value = "対象人数"; xlWorkSheet.Cells[1, 3].Font.Bold = true; xlWorkSheet.Cells[1, 3].Interior.ColorIndex = 35; //材料 xlWorkSheet.Cells[3, 1].Value = "材料"; xlWorkSheet.Cells[3, 2].Value = "量"; xlWorkSheet.Cells[3, 3].Value = "単位"; xlWorkSheet.get_Range("A3", "C3").Font.Bold = true; xlWorkSheet.get_Range("A3", "C3").Interior.ColorIndex = 36; //調味料 xlWorkSheet.Cells[12, 1].Value = "調味料"; xlWorkSheet.Cells[12, 2].Value = "量"; xlWorkSheet.Cells[12, 3].Value = "単位"; xlWorkSheet.get_Range("A12", "C12").Font.Bold = true; xlWorkSheet.get_Range("A12", "C12").Interior.ColorIndex = 39; //手順(ヘッダー) xlWorkSheet.Cells[1, 4].Value = "手順"; xlWorkSheet.get_Range("D1", "H1").Font.Bold = true; xlWorkSheet.get_Range("D1", "H1").Interior.ColorIndex = 17; xlWorkSheet.get_Range("D1", "H1").MergeCells = true; //手順(本文) //左上揃え xlWorkSheet.Cells[2, 4].HorizontalAlignment = ETHAlign.etHAlignLeft; xlWorkSheet.Cells[2, 4].VerticalAlignment = ETVAlign.etVAlignTop; //セル結合 xlWorkSheet.get_Range("D2", "H20").MergeCells = true //A1にフォーカス xlWorkSheet.Cells[1, 1].Select(); return xlWorkSheet; } |
DataTableのデータをエクセルに出力するところもまとめようと思いましたが、
少し長くなってしまうので、今回はここまでです!
それでは次回第3回目でデータをエクセルに出力するところを
紹介したいと思います。
おすすめのプログラミングスクール めざせ就職・年収アップ!
プログラミングを独学でされている人は意外と多いです。
ただ、プログラミングの独学は簡単にはいきません。
自分だけの力...
プログラミング初心者の独学方法 文系卒の経験談
私はIT系の会社に勤めて4年目ですが、最初の1年は開発をさせてもらえませんでした。
文系卒でプログラミング経験はなかったの...
プログラミングの独学とはエラーとの闘い
プログラミングを勉強し始めた初心者の方はつまづくことが多いと思います。
私も最初はエラーが出るたびにいちいちビビッて、意味...
C# – Merge two DataTable. Any Solution?
http://stackoverflow.com/questions/10786872/c-sharp-merge-two-datatable-any-solution
http://stackoverflow.com/questions/10786872/c-sharp-merge-two-datatable-any-solution