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

如何在C#中使用VSTO将类列表绑定到Excel工作表?

C# VSTO 类列表绑定到Excel工作表实现方案

前置依赖

你已经完成VS2019 VSTO开发组件安装,无需额外依赖包。

步骤1:定义数据类(示例)

以商品数据类为例,你可以替换为自己的业务类:

public class Product
{
    public int 商品ID { get; set; }
    public string 商品名称 { get; set; }
    public decimal 售价 { get; set; }
    public int 库存数量 { get; set; }
}

步骤2:单向绑定实现(写入数据到Excel,性能最优)

该方案适合仅需要导出类列表到Excel的场景,数据量大时远快于逐单元格赋值

  • 引入必要命名空间
using Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Collections.Generic;
  • 核心实现代码
// 1. 拿到你的类列表实例,替换为你自己的数据源获取逻辑
List<Product> dataList = GetYourDataSource();

// 2. 获取目标工作表
Worksheet targetSheet = Globals.ThisAddIn.Application.ActiveSheet as Worksheet;
// 文档级VSTO项目可直接用预设的工作表实例:Worksheet targetSheet = Globals.Sheet1;

// 3. 生成写入用二维数组
PropertyInfo[] props = typeof(Product).GetProperties();
int rowNum = dataList.Count + 1; // 加1行存表头
int colNum = props.Length;
object[,] writeArr = new object[rowNum, colNum];

// 填充表头
for (int i = 0; i < colNum; i++)
{
    writeArr[0, i] = props[i].Name;
}

// 填充数据
for (int i = 1; i < rowNum; i++)
{
    var currentItem = dataList[i - 1];
    for (int j = 0; j < colNum; j++)
    {
        writeArr[i, j] = props[j].GetValue(currentItem);
    }
}

// 4. 一次性写入Excel
Range targetRange = targetSheet.Range[targetSheet.Cells[1, 1], targetSheet.Cells[rowNum, colNum]];
targetRange.Value = writeArr;

// 可选:自动适配列宽
targetRange.EntireColumn.AutoFit();

步骤3:双向绑定实现(修改Excel同步更新类列表)

如果需要Excel和类列表双向同步,使用VSTO提供的ListObject控件即可:

  • 新增命名空间引用
using Microsoft.Office.Tools.Excel;
  • 绑定代码
// 应用级VSTO项目需要先把互操作工作表转成宿主工作表
Worksheet vstoSheet = Globals.Factory.GetVstoObject(targetSheet);
// 文档级项目可跳过上面这步,直接用预设的工作表实例

// 创建ListObject控件
ListObject bindList = vstoSheet.Controls.AddListObject(targetRange, "BindDataSource");
// 绑定类列表
bindList.SetDataBinding(dataList);

注意:双向绑定需要你的数据类实现INotifyPropertyChanged接口,才能实现类属性变更自动同步到Excel

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 20:18:04