我看了另一个类似的问题,它似乎与我的问题不同。我还查了微软的日期表和谷歌上所有我能想到的短语。
错误如下:
项目文件行抑制状态ResolveComReference"任务返回false,但没有记录错误。OpenDataSheet
我要做的是打开一个工作簿并获得工作表的数量;然后,我希望加载一个包含名称的组合框。
附件是代码。
项目文件行抑制状态ResolveComReference"任务返回false,但没有记录错误。OpenDataSheet
我去掉了额外的","最后,但这并没有解决任何问题。
我现在得到以下警告:
I can not find a DTSlib.
警告无法找到类型库" dtsli& quot;的包装程序集。验证(1)COM组件已正确注册,(2)您的目标平台与COM组件的位元相同。例如,如果COM组件是32位的,那么您的目标平台就不能是64位的。
警告无法找到引用的组件'DTSLib'。
警告无法解析依赖的COM引用" ff668ccd -490a-498c-b8c9-81223b6056fc">
1.0版。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
namespace OpenDataSheet
{
public partial class FrmOpenDataSheet : Form
{
public FrmOpenDataSheet()
{
Excel.Application app;
Excel.Workbook foodPantryWorkbook;
Excel.Worksheet workSheet;
object misValue = System.Reflection.Missing.Value;
//this.Application.Workbooks.Open(@"Food Pantry Registry.xlsm");
app = new Excel.Application();
foodPantryWorkbook = app.Workbooks.Open("Food Pantry Registry.xlsm", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "t", false, false, 0, true, 1, 0);
//string proc = "RegisterInput.exe";
//Process.Start(proc);
workSheet = (Excel.Worksheet)foodPantryWorkbook.Worksheets.get_Item("Totals");
int numberOfSheets = foodPantryWorkbook.Sheets.Count;
int temp = 0;
temp += temp;
}
private void CmdCancel_Click(object sender, EventArgs e)
{
string proc = "Food Pantry.exe";
Process.Start(proc);
System.Environment.Exit(0);
}
private void CmdSelectSheet_Click(object sender, EventArgs e)
{
}
}
用以下代码解决:
我通过指定从驱动器c:开始的完整补丁来解决这个问题。显然,即使文件与可执行文件在同一个文件夹中,您仍然需要指定完整的路径。