水平に分割されたセルに値を合わせるにはどうすればよいですか? 各行を動的に複製しています。このアプローチを使用していたため、現在入力されている値はマージ フィールドですが、レポートを動的にすることはできませんでした。どんな助けでも大歓迎です。
1 に答える
1
MS Excel では、1 つのセルに 2 つの値を入力することはできません。一部のセルをマージ/マージ解除し、それに応じて関連するセルに値を入力することで、タスクを達成できると思います。参照用に以下のサンプル コードを参照してください。添付されたテーブル/マトリックスの一部をカバーして設計します。それを参照してください。(Aspose.Cells API を介して) 独自のコードを記述して、それに応じてタスクを実行できます。
var workbook = new Workbook();
var worksheet = workbook.Worksheets[0];
//Input header value to B1 cell (later we will merge it: B1:C1 --> B1
worksheet.Cells[0, 1].PutValue("header2");
//Input value to B2 cell that would be merged with B3 to become B2.
worksheet.Cells[1, 1].PutValue(1);
//Input value to C2 cell.
worksheet.Cells[1, 2].PutValue(2);
//Input value to C3 cell.
worksheet.Cells[2, 2].PutValue(3);
//Set row heights for 2nd and third rows for the cells accordingly.
worksheet.Cells.SetRowHeight(1, 25);
worksheet.Cells.SetRowHeight(2, 25);
//Merging cells.
//Merge B1:C1 --> B1
worksheet.Cells.Merge(0, 1, 1, 2);
//Merge B2:B3 --> B2
worksheet.Cells.Merge(1, 1, 2, 1);
//Formatting cells and ranges.
//Creating a range that spans over the all data cells of a worksheet
var range = worksheet.Cells.CreateRange("B1", "C3");
//Create a Style object.
Style colstyle = workbook.CreateStyle();
colstyle.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
colstyle.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
colstyle.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
colstyle.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
colstyle.HorizontalAlignment = TextAlignmentType.Center;
StyleFlag flag = new StyleFlag();
flag.Borders = true;
flag.HorizontalAlignment = true;
//Apply the style to the range
range.ApplyStyle(colstyle, flag);
workbook.Save("e:\\test2\\output__mergedcells.xlsx");
参照用に、Ms Excel で取得した出力 Excel ファイルのスクリーン ショットを参照してください: http://prntscr.com/8rbc0i
私は Aspose の開発者/エバンジェリストです。
于 2015-10-14T19:04:25.443 に答える