gpt4 book ai didi

c# - 无法转换类型为 'Microsoft.Office.Interop.Excel.WorksheetClass' 的 COM 对象

转载 作者:太空狗 更新时间:2023-10-30 00:51:30 26 4
gpt4 key购买 nike

我正在尝试使用 C# 从一堆聚合数据中创建并保存一个新的 excel 文档。现在,我只是想让基础知识发挥作用,比如编辑表格单元格等。我只是想设置一个单元格的内容:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.Office.Interop.Excel;

namespace DebugReport
{
class MonumentDebugReport
{
static void Main(string[] args)
{
Worksheet spreadsheet = new Worksheet();

spreadsheet.Cells[0, 0] = "stuff";
}
}
}

返回:

无法将类型为“Microsoft.Office.Interop.Excel.WorksheetClass”的 COM 对象转换为接口(interface)类型“Microsoft.Office.Interop.Excel._Worksheet”。此操作失败,因为 IID 为“{000208D8-0000-0000-C000-000000000046}”的接口(interface)的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(interface)(HRESULT 异常:0x80004002 (E_NOINTERFACE)) .

在我设置单元格的行上。对我来说,这看起来与我见过的大多数示例/教程完全一样,而且我在 C# 文档中找不到任何表明这行不通的内容。

最佳答案

就像 Hans 已经说过的,您需要先创建一个 Excel 应用程序,然后向其中添加一个工作簿,然后添加一个工作表(或尝试访问已经存在的 Sheets[1])

using Microsoft.Office.Interop.Excel 和别名

使用 Excel = Microsoft.Office.Interop.Excel

然后

Excel.Application xlApp = new Excel.Application();
xlApp.Visible = true;
Excel.Workbook xlWb = xlApp.Workbooks.Add() as Excel.Workbook;
Excel.Worksheet xlSheet = xlWb.Sheets[1] as Excel.Worksheet;
Excel.Range range = xlSheet.get_Range("A1");

range.Value = "hello world!";

然后看看How to properly clean up Excel interop objects

关于c# - 无法转换类型为 'Microsoft.Office.Interop.Excel.WorksheetClass' 的 COM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com