急急急急急!引用程序集问题! 确定Interop.Excel.dll,和可执行文件在同一个目录。打开release 或 debug目录看看。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我以前也碰到過此問題,估計是引用錯了我電腦上安裝了Office2003和2007結果我引用了2007的,其他人用不了 確定bin\debug文件夾下有Interop.Excel.dll、我的還用到了Interop.OWC11.dll 对Office的操作,如果不能按数据源来操作,最好使用后期的绑定,前期绑定在操作上可能很好,可是如果版本或引用不一致就会出问题. 如果能按数据源的方式来导入导出数据这是最快的,如果觉得要灵活处理可以使用后期的绑定,对于前期引用和后期的引用的区别可以参考如下的两个方法:private void btnLater_Click(object sender, EventArgs e){ object objApp; object objBook; object objBooks; object objSheets; object objSheet; object objRange; object[] Parameters; try { // Get the class type and instantiate Excel. Type objClassType; objClassType = Type.GetTypeFromProgID("Excel.Application"); objApp = Activator.CreateInstance(objClassType); //Get the workbooks collection. objBooks = objApp.GetType().InvokeMember("Workbooks", BindingFlags.GetProperty, null, objApp, null); //Add a new workbook. objBook = objBooks.GetType().InvokeMember("Add", BindingFlags.InvokeMethod, null, objBooks, null); //Get the worksheets collection. objSheets = objBook.GetType().InvokeMember("Worksheets", BindingFlags.GetProperty, null, objBook, null); //Get the first worksheet. Parameters = new Object[1]; Parameters[0] = 1; objSheet = objSheets.GetType().InvokeMember("Item", BindingFlags.GetProperty, null, objSheets, Parameters); //Get a range object that contains cell A1. Parameters = new Object[2]; Parameters[0] = "A1"; Parameters[1] = Missing.Value; objRange = objSheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, objSheet, Parameters); //Write "Hello, World!" in cell A1. Parameters = new Object[1]; Parameters[0] = "Hello, World!"; objRange.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, objRange, Parameters); //Return control of Excel to the user. Parameters = new Object[1]; Parameters[0] = true; objApp.GetType().InvokeMember("Visible", BindingFlags.SetProperty, null, objApp, Parameters); objApp.GetType().InvokeMember("UserControl", BindingFlags.SetProperty, null, objApp, Parameters); } catch (Exception theException) { String errorMessage; errorMessage = "Error: "; errorMessage = String.Concat(errorMessage, theException.Message); errorMessage = String.Concat(errorMessage, " Line: "); errorMessage = String.Concat(errorMessage, theException.Source); MessageBox.Show(errorMessage, "Error"); }}private void btnEarly_Click(object sender, EventArgs e){ Excel.Application objApp; Excel._Workbook objBook; Excel.Workbooks objBooks; Excel.Sheets objSheets; Excel._Worksheet objSheet; Excel.Range range; try { // Instantiate Excel and start a new workbook. objApp = new Excel.Application(); objBooks = objApp.Workbooks; objBook = objBooks.Add(Missing.Value); objSheets = objBook.Worksheets; objSheet = (Excel._Worksheet)objSheets.get_Item(1); range = objSheet.get_Range("A1", Missing.Value); range.set_Value(Missing.Value, "Hello, World!"); //Return control of Excel to the user. objApp.Visible = true; objApp.UserControl = true; } catch (Exception theException) { String errorMessage; errorMessage = "Error: "; errorMessage = String.Concat(errorMessage, theException.Message); errorMessage = String.Concat(errorMessage, " Line: "); errorMessage = String.Concat(errorMessage, theException.Source); MessageBox.Show(errorMessage, "Error"); }} 如果是asp.net,用excel组件有权限问题。 OLEDB读取excel的工作表名 C#捕捉按钮事件 C#中调用delphi写的动态库的函数 出现UnAuthorizedAccessException异常怎么解决 在c#form中如何编写可拖拽的矩形节点 日期自定义格式问题 100分求不同Project的两个Form操作的解决办法 为什么用SendARP获取局域网的网卡的MAC地址只返回前4位???而不是6位呢? 事务处理的问题 如果表中没有数据,怎么取出表的数据结构,即字段类型? 向同一个页面传参?多谢! 急!在C#中如何用SQL语句获取指定表的指定列名,在线等~!
我電腦上安裝了Office2003和2007
結果我引用了2007的,其他人用不了
我的還用到了Interop.OWC11.dll
如果觉得要灵活处理可以使用后期的绑定,对于前期引用和后期的引用的区别可以参考如下的两个方法:
private void btnLater_Click(object sender, EventArgs e)
{
object objApp;
object objBook;
object objBooks;
object objSheets;
object objSheet;
object objRange;
object[] Parameters; try
{
// Get the class type and instantiate Excel.
Type objClassType;
objClassType = Type.GetTypeFromProgID("Excel.Application");
objApp = Activator.CreateInstance(objClassType); //Get the workbooks collection.
objBooks = objApp.GetType().InvokeMember("Workbooks",
BindingFlags.GetProperty, null, objApp, null); //Add a new workbook.
objBook = objBooks.GetType().InvokeMember("Add",
BindingFlags.InvokeMethod, null, objBooks, null); //Get the worksheets collection.
objSheets = objBook.GetType().InvokeMember("Worksheets",
BindingFlags.GetProperty, null, objBook, null); //Get the first worksheet.
Parameters = new Object[1];
Parameters[0] = 1;
objSheet = objSheets.GetType().InvokeMember("Item",
BindingFlags.GetProperty, null, objSheets, Parameters); //Get a range object that contains cell A1.
Parameters = new Object[2];
Parameters[0] = "A1";
Parameters[1] = Missing.Value;
objRange = objSheet.GetType().InvokeMember("Range",
BindingFlags.GetProperty, null, objSheet, Parameters); //Write "Hello, World!" in cell A1.
Parameters = new Object[1];
Parameters[0] = "Hello, World!";
objRange.GetType().InvokeMember("Value", BindingFlags.SetProperty,
null, objRange, Parameters); //Return control of Excel to the user.
Parameters = new Object[1];
Parameters[0] = true;
objApp.GetType().InvokeMember("Visible", BindingFlags.SetProperty,
null, objApp, Parameters);
objApp.GetType().InvokeMember("UserControl", BindingFlags.SetProperty,
null, objApp, Parameters);
}
catch (Exception theException)
{
String errorMessage;
errorMessage = "Error: ";
errorMessage = String.Concat(errorMessage, theException.Message);
errorMessage = String.Concat(errorMessage, " Line: ");
errorMessage = String.Concat(errorMessage, theException.Source); MessageBox.Show(errorMessage, "Error");
}
}private void btnEarly_Click(object sender, EventArgs e)
{
Excel.Application objApp;
Excel._Workbook objBook;
Excel.Workbooks objBooks;
Excel.Sheets objSheets;
Excel._Worksheet objSheet;
Excel.Range range; try
{
// Instantiate Excel and start a new workbook.
objApp = new Excel.Application();
objBooks = objApp.Workbooks;
objBook = objBooks.Add(Missing.Value);
objSheets = objBook.Worksheets;
objSheet = (Excel._Worksheet)objSheets.get_Item(1); range = objSheet.get_Range("A1", Missing.Value); range.set_Value(Missing.Value, "Hello, World!"); //Return control of Excel to the user.
objApp.Visible = true;
objApp.UserControl = true;
}
catch (Exception theException)
{
String errorMessage;
errorMessage = "Error: ";
errorMessage = String.Concat(errorMessage, theException.Message);
errorMessage = String.Concat(errorMessage, " Line: ");
errorMessage = String.Concat(errorMessage, theException.Source); MessageBox.Show(errorMessage, "Error");
}
}