向EXCEL中插入图片测试
2009-09-23 17:27
796 查看
2009.9.23 今天学习的是如何向EXCEL中插入图片
遇到的问题有
1 错误类型“Office.MsoTriState”在未被引用的程序集中定义。必须添加对程序集“Office, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null”的引用。
如果你出现了这个问题,请注意下你的EXCEL版本,因为EXCEL的DLL有2个 一个事11对应着2003,12 对应着2007.删除额外的EXCEL重新生成下就行了。对这个问题弄了半天才弄好。浪费了很多时间,我是直接引用了原来项目中使用的EXCEL 结果是12的 我机器安装的是2003
2 错误参数“2”: 无法从“Microsoft.Office.Core.MsoTriState”转换为“Microsoft.Office.Core.MsoTriState[]”
这个问题很是恼火 看了原定义
public enum MsoTriState
{
msoTriStateToggle = -3,
msoTriStateMixed = -2,
msoTrue = -1,
msoFalse = 0,
msoCTrue = 1,
}
确信没错,还是版本问题引起的问题,另外你需要添加OFFICE.DLL的引用,同上注意版本问题。
版本问题出错截图
using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;
#region EXCEL插入图片测试
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks workbooks = excel.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)excel.ActiveSheet;//取得sheet1
excel.Visible = true;//这里为是否打开EXCEL 打开的话就可以看到一行一行的添加过程! 如果要远程的话还是关掉了
//表名
worksheet.Name = "测试往EXCEL里面添加图片";
worksheet.Shapes.AddPicture("E://工作//ConsoleApplication1//test.jpg", MsoTriState.msoFalse, MsoTriState.msoTrue, 10, 10, 150, 150);
// Shape AddPicture(
// [In] string Filename,
// [In] MsoTriState LinkToFile,
// [In] MsoTriState SaveWithDocument,
// [In] float Left,
// [In] float Top,
// [In] float Width,
// [In] float Height
//);
try
{
//获取或设置一个值,该值指示工作簿自上次保存以来是否进行了更改。
//如果工作簿从未保存过,则其 Path 属性返回空字符串 ("")。
//如果希望关闭修改过的工作簿而不进行保存或不被提示进行保存,则可将此属性设置为 true。
workbook.Saved = true;
//将工作簿的副本保存到文件中,但不修改内存中打开的工作簿。
workbook.SaveCopyAs("E://工作//ConsoleApplication1//test.xls");
//worksheet.SaveAs(filename, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//Worksheet.Dispose 方法 (Boolean)释放由 Worksheet 使用的非托管资源并可以选择释放托管资源。
// Worksheet.Delete 方法
//删除基础 Microsoft.Office.Interop.Excel.Worksheet 对象,但不删除宿主项。强烈建议不使用此方法。
//worksheet.Delete();
excel.ActiveWorkbook.Close(false, null, null); //这里是否提示用户保存 FALSE的话为直接保存
excel.Workbooks.Close();
}
catch (Exception ex)
{
throw;
}
finally
{
excel.Quit(); // 退出 Excel
//System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
//System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
//System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
GC.Collect();
}
#endregion
遇到的问题有
1 错误类型“Office.MsoTriState”在未被引用的程序集中定义。必须添加对程序集“Office, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null”的引用。
如果你出现了这个问题,请注意下你的EXCEL版本,因为EXCEL的DLL有2个 一个事11对应着2003,12 对应着2007.删除额外的EXCEL重新生成下就行了。对这个问题弄了半天才弄好。浪费了很多时间,我是直接引用了原来项目中使用的EXCEL 结果是12的 我机器安装的是2003
2 错误参数“2”: 无法从“Microsoft.Office.Core.MsoTriState”转换为“Microsoft.Office.Core.MsoTriState[]”
这个问题很是恼火 看了原定义
public enum MsoTriState
{
msoTriStateToggle = -3,
msoTriStateMixed = -2,
msoTrue = -1,
msoFalse = 0,
msoCTrue = 1,
}
确信没错,还是版本问题引起的问题,另外你需要添加OFFICE.DLL的引用,同上注意版本问题。
版本问题出错截图
using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;
#region EXCEL插入图片测试
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks workbooks = excel.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)excel.ActiveSheet;//取得sheet1
excel.Visible = true;//这里为是否打开EXCEL 打开的话就可以看到一行一行的添加过程! 如果要远程的话还是关掉了
//表名
worksheet.Name = "测试往EXCEL里面添加图片";
worksheet.Shapes.AddPicture("E://工作//ConsoleApplication1//test.jpg", MsoTriState.msoFalse, MsoTriState.msoTrue, 10, 10, 150, 150);
// Shape AddPicture(
// [In] string Filename,
// [In] MsoTriState LinkToFile,
// [In] MsoTriState SaveWithDocument,
// [In] float Left,
// [In] float Top,
// [In] float Width,
// [In] float Height
//);
try
{
//获取或设置一个值,该值指示工作簿自上次保存以来是否进行了更改。
//如果工作簿从未保存过,则其 Path 属性返回空字符串 ("")。
//如果希望关闭修改过的工作簿而不进行保存或不被提示进行保存,则可将此属性设置为 true。
workbook.Saved = true;
//将工作簿的副本保存到文件中,但不修改内存中打开的工作簿。
workbook.SaveCopyAs("E://工作//ConsoleApplication1//test.xls");
//worksheet.SaveAs(filename, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//Worksheet.Dispose 方法 (Boolean)释放由 Worksheet 使用的非托管资源并可以选择释放托管资源。
// Worksheet.Delete 方法
//删除基础 Microsoft.Office.Interop.Excel.Worksheet 对象,但不删除宿主项。强烈建议不使用此方法。
//worksheet.Delete();
excel.ActiveWorkbook.Close(false, null, null); //这里是否提示用户保存 FALSE的话为直接保存
excel.Workbooks.Close();
}
catch (Exception ex)
{
throw;
}
finally
{
excel.Quit(); // 退出 Excel
//System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
//System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
//System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
GC.Collect();
}
#endregion
相关文章推荐
- 如何把图片插入到Excel里
- excel插入图片自动适应表格大小
- C#向Excel报表中插入图片的2种方法
- JAVA实现在excel插入图片(POI模式)
- java导出excel,以及相关实例jxl ,插入图片,指定格式文字
- C#向Excel报表中插入图片的2种方法
- asp.net两种方式在模板excel中插入图片:npoi和c# com组件
- 我测试一下这个blog插入图片方便否:)
- excel 中插入图片(很不错的方法)
- 在EXCEL中插入内存中的图片(VSTO)
- C#向Excel报表中插入图片的2种方法
- POI-Excel插入图片
- Excel中无法插入和黏贴图片的解决方法
- [导入]C#向Excel报表中插入图片的2种方法
- POI插入图片至Excel使用固定的长宽
- java POI实现向Excel中插入图片
- java POI实现向Excel中插入图片
- VC操作Excel——插入图片以及对图片的修改
- window live write 插入图片测试
- C#向Excel报表中插入图片的2种方法