E小cel 异常 “object”未包含“get_Range”的定义 解决方案
来源:互联网 发布:大学生就业情况数据 编辑:程序博客网 时间:2024/04/19 17:55
public void ExportExcel(DataTable table, string Title, string FullPath)
{
//文件存在时先删除文件后再进行下一步操作
System.IO.FileInfo file = new System.IO.FileInfo(FullPath);
if (file.Exists)
{
file.Delete();
}
int rowIndex = 1; //开始写入数据的单元格行
int colIndex = 0; //开始写入数据的单元格列
int DTCols = table.Columns.Count;
int DTRows = table.Rows.Count;
System.Reflection.Missing miss = System.Reflection.Missing.Value;
Excel.Application mExcel = new Excel.Application();
mExcel.Visible = false;
Excel.Workbooks mBooks = (Excel.Workbooks)mExcel.Workbooks;
Excel.Workbook mBook = (Excel.Workbook)(mBooks.Add(miss));
Excel.Worksheet mSheet = (Excel.Worksheet)mBook.ActiveSheet;
//创建标题
Excel.Range range = mExcel.get_Range(mSheet.Cells[rowIndex, 1], mSheet.Cells[rowIndex, DTCols]);
range.Merge(false);
range.RowHeight = 40;
range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
range.VerticalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
range.Value2 = new string[] { Title };
rowIndex++;
//设置数据单元格高度
range = mSheet.get_Range(mSheet.Cells[rowIndex, 1],mSheet.Cells[DTRows + rowIndex, DTCols]);
range.RowHeight = 25;
try
{
foreach (DataColumn col in table.Columns) //将所得到的表的列名,赋值给单元格
{
colIndex++;
mSheet.Cells[rowIndex, colIndex] = col.ColumnName;
}
foreach (DataRow row in table.Rows) //同样方法处理数据
{
rowIndex++;
colIndex = 0;
foreach (DataColumn col in table.Columns)
{
colIndex++;
mSheet.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
}
}
//保存工作已写入数据的工作表
mBook.SaveAs(FullPath, miss, miss, miss, miss, miss, Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss, miss, miss);
}
catch (Exception ee)
{
throw new Exception(ee.Message);
}
finally //finally中的代码主要用来释放内存和中止进程()
{
mBook.Close(false, miss, miss);
mBooks.Close();
mExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
System.Runtime.InteropServices.Marshal.ReleaseComObject(mSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(mBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(mBooks);
System.Runtime.InteropServices.Marshal.ReleaseComObject(mExcel);
GC.Collect();
}
}
导出excel代码,总是提示“object”未包含“get_Range”的定义,查了很多资料,解决方法其实很简单
Excel.Range range = mExcel.get_Range(mSheet.Cells[rowIndex, 1], mSheet.Cells[rowIndex, DTCols]);
修改为:Excel.Range range = mExcel.get_Range((object)mSheet.Cells[rowIndex, 1], (object)mSheet.Cells[rowIndex, DTCols]);
就可以了,这是在.net 4下面。
.net2下面这样写:Excel.Range range = mExcel.get_Range(mSheet.Cells[rowIndex, 1], mSheet.Cells[rowIndex, DTCols]); 是没有问题。
转载:http://lanyue52011.blog.163.com/blog/static/357282892012727112044234/
转载:http://lanyue52011.blog.163.com/blog/static/357282892012727112044234/
0 0
- E小cel 异常 “object”未包含“get_Range”的定义 解决方案
- “object”未包含“get_Range”的定义
- object 未包含get_range的定义
- 写入EXCEL “object”未包含“get_Range”的定义
- Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: “object”未包含“get_Range”的定义
- asp.net 将数据导入到excel中 出现 “object”未包含“get_Range”的定义
- C#将数据导入到excel中 出现 “object”未包含“get_Range”的定义报错
- VS2013中Winform导出Excel文件时报“object”未包含“get_Range”的定义解决方法
- C#将数据导入到excel中 出现 “object”未包含“get_Range”的定义
- 记dynamic的一个小坑 -- RuntimeBinderException:“object”未包含“xxx”的定义
- asp.net 导出EXCEL 报错未包含 get_Range 的定义
- IFeatureBuffer.set_Value出现错误:“object”未包含“set_Value”的定义
- Resources中未包含。。。的定义
- 在VS2010中调用COM Interop DLL操作Excel通过get_Range去获取Range时,会发生Object does not contain a definition for get_Range的错误。其原因和解决方案
- VC操作Excel,使用Worksheet的get_Range发生异常
- OleDbConnection.open 导致异常未指定的错误解决方案
- Codeforces Round #FF(255) div2题解(未包含E)
- 判断一个整型数组是否包含另外一个数组(未使用异常类的情况下)
- iwebshop前台视频添加
- 如何调试的win xp系统下的程序?
- 将数字形式的资源ID转换成字符串形式的资源ID
- C++静态成员变量的声明与定义及初始化
- 当前主流的安卓APP开发IDE
- E小cel 异常 “object”未包含“get_Range”的定义 解决方案
- 一个岔路口分别通向诚实国和说谎国。 来了两个人,已知一个是诚实国的,另一个是说谎国的。 诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国, 但不知道应该走哪条路,需要问这两个人。请问应该怎么问?(
- 关于在窗口中无法接受鼠标双击的解决方案-WIN32
- 用C++进行图形图像处理
- Generating a new SSH key and adding it to the ssh-agent
- Web性能优化
- #include<>与#include" "的区别
- win32提取应用程序图标
- unicode与utf8之间的转换