c# 在2003上写的程序,dataGridView上的数据转出到 EXCEL.在2003系统上,没有错误.但是在xp和2000上有以下错误:
Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. 系统找不到指定的文件。
File name: 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
at honglincable.BaseClass.Operation.ExportDataGridview(DataGridView gridView, Boolean isShowExcle)
转出的函数:
public bool ExportDataGridview(DataGridView gridView,bool isShowExcle)
{
if (gridView.Rows.Count == 0)
return false;
//建立Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(true);
excel.Visible = isShowExcle;
//生成字段名称
for (int i = 0; i < gridView.ColumnCount; i++)
{
excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText;
}
//填充数据
for (int i = 0; i < gridView.RowCount-1; i++)
{
for (int j = 0; j < gridView.ColumnCount; j++)
{
if (gridView[j, i].ValueType == typeof(string))
{
excel.Cells[i + 2, j + 1] = "'" + gridView[j, i].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] = gridView[j, i].Value.ToString();
}
}
}
return true;
}
请高手帮忙!
Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. 系统找不到指定的文件。
File name: 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
at honglincable.BaseClass.Operation.ExportDataGridview(DataGridView gridView, Boolean isShowExcle)
转出的函数:
public bool ExportDataGridview(DataGridView gridView,bool isShowExcle)
{
if (gridView.Rows.Count == 0)
return false;
//建立Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(true);
excel.Visible = isShowExcle;
//生成字段名称
for (int i = 0; i < gridView.ColumnCount; i++)
{
excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText;
}
//填充数据
for (int i = 0; i < gridView.RowCount-1; i++)
{
for (int j = 0; j < gridView.ColumnCount; j++)
{
if (gridView[j, i].ValueType == typeof(string))
{
excel.Cells[i + 2, j + 1] = "'" + gridView[j, i].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] = gridView[j, i].Value.ToString();
}
}
}
return true;
}
请高手帮忙!
出现这个问题的原因有两个:1、系统里没有安装“Excel 2003”;2、系统安装了“Excel 2003”,但是没有安装到GAC里面。(有关GAC全局程序集缓存的介绍大家可以参考MSDN的相关帮助。)首先,如果是由于第一种原因而导致出现如题的问题的话那是最好解决不过的了,那就是安装一下Microsoft Excel 2003就可以了。另外,由于第二种原因而导致的。导致出现种情况的可能也有两个:一是在Office 是在安装.Net Framework之前安装的,另一个是在安装Office的过程中漏选了“.Net 可编程性支持”。那么我们现在要做的就是将Office 2003 PIA(主Interop程序集)安装到GAC里。
应该是没装Excel引起的而且版本还得一至
安装个!!
然后确认你的Office安装了.net可编程性支持。
如有office 2003 安装程序或者光盘,可再次运行安装程序,选择“添加或删除组件”,->勾选“高级自定义应用程序”,->展开Microsoft Office Excel节点并选择 .NET Programmability Support(.net可编程支持)。单击 .NET Programmability Support (.net可编程支持)旁边的下拉箭头以选择更新选项,并选取 Run from My Computer(从本机运行)。然后点击“更新”按钮。