C#でWordにExcelテーブルをインポートする


Word文書にExcelスプレッドシートを表示するには、Excel文書をOELオブジェクトとしてWordに挿入するか、Excel表をWordにコピーします。 この資料では、ExcelスプレッドシートをWordにコピーし、Excelの表のスタイルを保持する方法について説明します。
このシナリオでは、Spire.Xls.dllとSpire.Doc.dllの両方をプロジェクトで参照する必要があります。Spire.OfficeをダウンロードしてDLLファイルを使用してください。
【C#】

Program.cs

static void Main(string[] args)
{
//ワークブックオブジェクトを作成する
Workbook workbook = new Workbook();
//Excelドキュメントを読み込む
workbook.LoadFromFile(@"テスト.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//Documentオブジェクトを作成する
Document doc = new Document();
//Wordにフォームを追加する
Table table = doc.AddSection().AddTable(true);
//Excelテーブルデータの行数と列数に基づいてテーブルの行と列を設定する
table.ResetCells(sheet.LastRow, sheet.LastColumn);
//Excelテーブルの行をトラバースする
for (int r = 1; r <= sheet.LastRow; r++)
    {
     //Excelテーブルの列をトラバースする
     for (int c = 1; c <= sheet.LastColumn; c++)
         {
           //Excelテーブルのセルを取得する
           CellRange xCell = sheet.Range[r, c];
           //Wordの表のセルを取得する
           TableCell wCell = table.Rows[r - 1].Cells[c - 1];
           //Excelのセルデータを対応するWordセルに取り込みます
           TextRange textRange = wCell.AddParagraph().AppendText(xCell.NumberText);
                //セルフォーマットをコピーする
           CopyStyle(textRange, xCell, wCell);
           }
      }

       //ドキュメントを保存
       doc.SaveToFile("結果.docx", Spire.Doc.FileFormat.Docx);
    }
    private static void CopyStyle(TextRange wTextRange, CellRange xCell, TableCell wCell)
   {
    //フォントスタイルをコピーする
    wTextRange.CharacterFormat.TextColor = xCell.Style.Font.Color;
    wTextRange.CharacterFormat.FontSize = (float)xCell.Style.Font.Size;
    wTextRange.CharacterFormat.FontName = xCell.Style.Font.FontName;
    wTextRange.CharacterFormat.Bold = xCell.Style.Font.IsBold;
    wTextRange.CharacterFormat.Italic = xCell.Style.Font.IsItalic;
    //セルの背景色をコピーする
    wCell.CellFormat.BackColor = xCell.Style.Color;
    //テキストの配置をコピーする
    switch (xCell.HorizontalAlignment)
    {
        case HorizontalAlignType.Left:
            wTextRange.OwnerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Left;
            break;
        case HorizontalAlignType.Center:
            wTextRange.OwnerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center;
            break;
        case HorizontalAlignType.Right:
            wTextRange.OwnerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Right;
            break;
    }

}


デバッグコードが実行されると、ドキュメントという単語が生成されます