使用している書式や設定を一つ一つコピーしてください。

// コード例
// 第一引数のWorksheetから第二引数のWorksheetへ情報をコピーします。
private void copy(Worksheet from, Worksheet to)
{
    //表示設定
    //枠線をコピーします
    to.DisplayOptions.ShowGridlines = from.DisplayOptions.ShowGridlines;

    //印刷設定
    //用紙サイズをコピーします
    to.PrintOptions.PaperSize = from.PrintOptions.PaperSize;

    //印刷の方向をコピーします
    to.PrintOptions.Orientation = from.PrintOptions.Orientation;

    //余白をコピーします
    to.PrintOptions.TopMargin = from.PrintOptions.TopMargin;
    to.PrintOptions.BottomMargin = from.PrintOptions.BottomMargin;
    to.PrintOptions.RightMargin = from.PrintOptions.RightMargin;
    to.PrintOptions.LeftMargin = from.PrintOptions.LeftMargin;
    to.PrintOptions.HeaderMargin = from.PrintOptions.HeaderMargin;
    to.PrintOptions.FooterMargin = from.PrintOptions.FooterMargin;

    //改ページをコピーします
    for (int j = 0; j < from.PrintOptions.HorizontalPageBreaks.Count; j++)
    {
        to.PrintOptions.HorizontalPageBreaks.Add(to.PrintOptions.HorizontalPageBreaks[j]);
    }
    for (int k = 0; k < from.PrintOptions.VerticalPageBreaks.Count; k++)
    {
        to.PrintOptions.VerticalPageBreaks.Add(to.PrintOptions.VerticalPageBreaks[k]);
    }

    foreach (WorksheetRow row in from.Rows)
    {
        // 行の高さをコピーします
        to.Rows[row.Index].Height = row.Height;

        foreach (WorksheetCell cell in row.Cells)
        {
            // 列の幅をコピーします
            to.Columns[cell.ColumnIndex].Width = from.Columns[cell.ColumnIndex].Width;

            if (cell.Formula != null)
            {
                // 関数をコピーします
                to.Rows[row.Index].Cells[cell.ColumnIndex].ApplyFormula(cell.Formula.ToString());
            }
            else
            {
                // セルの値をコピーします
                to.Rows[row.Index].Cells[cell.ColumnIndex].Value = cell.Value;
            }

            // セルのフォーマットをコピーします
            to.Rows[row.Index].Cells[cell.ColumnIndex].CellFormat.SetFormatting(cell.CellFormat);

            to.Rows[row.Index].Cells[cell.ColumnIndex].CellFormat.TopBorderStyle = cell.GetResolvedCellFormat().TopBorderStyle;
            to.Rows[row.Index].Cells[cell.ColumnIndex].CellFormat.BottomBorderStyle = cell.GetResolvedCellFormat().BottomBorderStyle;
            to.Rows[row.Index].Cells[cell.ColumnIndex].CellFormat.LeftBorderStyle = cell.GetResolvedCellFormat().LeftBorderStyle;
            to.Rows[row.Index].Cells[cell.ColumnIndex].CellFormat.RightBorderStyle = cell.GetResolvedCellFormat().RightBorderStyle;
        }
    }

    //結合セルの情報をコピーします
    foreach (var m in from.MergedCellsRegions)
    {
        to.MergedCellsRegions.Add(m.FirstRow, m.FirstColumn, m.LastRow, m.LastColumn);

        to.MergedCellsRegions[to.MergedCellsRegions.Count - 1].CellFormat.SetFormatting(m.CellFormat);
    }
}

 

Tagged:

製品について

Ultimate UI for WPF