当我在用户端尝试exe时,我遇到了这个问题。用户有MicosoftExcel 2000,我已经执行2003.有人可以帮助我。
我在c#中创建了这个工具,并使用了COM
if( strDataSheetFile.Trim().EndsWith( ".xls" ) || strDataSheetFile.Trim().EndsWith( ".xlsx" ) )
{
System.IO.StreamWriter file = null;
if (IfAbFile)
{
file = new System.IO.StreamWriter(AbaqusDeckFile.ToString(), true);
}
else
{
string[] strFILEnamesSplit = strDataSheetFile.Split(new Char[] { '\\' });
string ExpFile = "";
int ilnt = 0;
foreach (string strVal in strFILEnamesSplit )
{
if (ilnt < (strFILEnamesSplit.Length - 1))
{
ExpFile += strVal;
ExpFile += "/";
}
else
ExpFile += "Deck.inp";
ilnt += 1;
}
file = new System.IO.StreamWriter(ExpFile.ToString(), true);
}
List<List<double>> List_SheetValues = new List<List<double>>();
Excel.Application objexcel;
Excel.Workbook wbexcel;
Excel.Worksheet wsheet;
objexcel = new Excel.Application();
//strDataSheetFile = @"C:\Ajoy\Demos\IsoMount\IsoMount_Springs_database_updated.xls";
if (File.Exists(strDataSheetFile))
wbexcel = objexcel.Workbooks.Open(strDataSheetFile);
else
{
MessageBox.Show(" Please state the number of springs", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.UseWaitCursor = false;
return;
}
答案 0 :(得分:1)
这可能发生在你使用早期(编译时)绑定到Excel类型库。
用户拥有不同版本的类型库(机器上的2000 vs 2003)。 您是否尝试在计算机上安装Excel 2000&amp;通过链接到2000类型库来编译您的应用程序。
或者,如果您没有使用任何2003特定功能和功能&amp;您使用的对象在这两个版本之间没有变化,您可以尝试延迟(运行时)绑定。
会有轻微的性能损失&amp;您在IDE中丢失了intellisense,但应该使您的应用程序可以在支持这些对象的所有Excel版本中移植。功能
答案 1 :(得分:0)
我认为问题是你正在编译你的项目&#39; x64&#39; 64位而不是将其编译为x86
32位应用程序。请按照以下步骤操作:
->Right click on Project
->Select Properties
->Select Build tab
->Change "Platform Target" to "x86"
->now run the Project.