You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C#结合Excel interop实现Excel工作表横向旋转?

你之前尝试的转置操作是对单元格行列内容进行互换,和你需要的「工作表横向旋转」需求不匹配。以下两种方案可以直接调整页面布局为横向,完整保留原有单元格列宽、内容和绑定的图片:

excel表格截图

方案1:使用GemBox组件实现(推荐,操作更简便)
  • 加载已生成的Excel文件
ExcelFile excelFile = ExcelFile.Load("目标文件路径.xlsx");
var targetWorksheet = excelFile.Worksheets[0];
  • 调整页面设置为横向,同时配置图片绑定规则
// 设置页面方向为横向
targetWorksheet.PrintOptions.Orientation = PageOrientation.Landscape;
// 可选配置:设置所有列自适应1页宽度,彻底避免内容溢出
targetWorksheet.PrintOptions.FitWorksheetWidthToPages = 1;

// 锁定图片和单元格的关联,避免布局调整后图片偏移
foreach (var picture in targetWorksheet.Pictures)
{
    picture.Position.MoveWithCells = true;
    picture.Position.SizeWithCells = true;
}
  • 直接保存文件即可,原有内容、图片完全不会被改动。
方案2:使用Excel Interop API实现
  • 激活目标工作表后调整页面属性
Worksheet targetWorksheet = (Worksheet)workbook.Worksheets[1];
// 设置页面为横向
targetWorksheet.PageSetup.Orientation = XlPageOrientation.xlLandscape;
// 可选配置:适配1页宽度
targetWorksheet.PageSetup.Zoom = false;
targetWorksheet.PageSetup.FitToPagesWide = 1;
targetWorksheet.PageSetup.FitToPagesTall = false;

// 绑定图片跟随单元格移动缩放
foreach (Shape shape in targetWorksheet.Shapes)
{
    if (shape.Type == MsoShapeType.msoPicture)
    {
        shape.Placement = XlPlacement.xlMoveAndSize;
    }
}
  • 保存工作簿即可生效。

内容的提问来源于stack exchange,提问作者prasanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:15:00