當然的Embed interop
類型的功能是非常好的事情,但我不能讓它跟我即使在簡單的情況下工作,所以請各位指教 這是我的錯誤,當我的機器上運行我的項目它不具有在其上安裝PowerPoint:嵌入互操作類型的問題
我的代碼很簡單我剛剛從PowerPoint中創建對象,創建演示文稿和下跌寫一些東西。
我嵌入到庫是Office
和Microsoft.Office.Interop.PowerPoint
轉換生成配置X68並沒有解決這個問題,
我建立的Windows應用程序,並把代碼按鈕,點擊如下:
private void button1_Click(object sender, EventArgs e)
{
var pp = new powerpoint.Application();
var oPres=pp.Presentations;
pp.Visible = Office.MsoTriState.msoTrue;
powerpoint.Presentation oPre= oPres.Add(Office.MsoTriState.msoTrue);
powerpoint.Slides oSlides = oPre.Slides;
powerpoint.Slide oSlide = oSlides.Add(1, powerpoint.PpSlideLayout.ppLayoutText);
powerpoint.Shapes oShapes = oSlide.Shapes;
powerpoint.Shape oShape = oShapes[1];
powerpoint.TextFrame oTxtFrame = oShape.TextFrame;
powerpoint.TextRange oTxtRange = oTxtFrame.TextRange;
oTxtRange.Text = "All-In-One Code Framework";
string fileName = Path.GetDirectoryName(
Assembly.GetExecutingAssembly().Location) + "\\Sample1.pptx";
oPre.SaveAs(fileName,
powerpoint.PpSaveAsFileType.ppSaveAsOpenXMLPresentation,
Office.MsoTriState.msoTriStateMixed);
oPre.Close();
pp.Quit();
pp = null;
}
在上面我加
using powerpoint = Microsoft.Office.Interop.PowerPoint;
using Office = Microsoft.Office.Core;
using System.IO;
using System.Reflection;
注意:程序工作正常,我在我的辦公室2013年安裝,但我的客戶端計算機上顯示此錯誤
可能重複[HRESULT:0x80040154(REGDB \ _E \ _CLASSNOTREG))](http://stackoverflow.com/questions/3003719/hresult-0x80040154-regdb-e-classnotreg)和[如何解決COM異常類未註冊(從HRESULT異常:0x80040154(REGDB_E_CLASSNOTREG))?](http://stackoverflow.com/questions/1496214/how-to-solve-com-exception-class-not-registered-exception-from-hresult-0x80040 ) – cubrr
在這種情況下我是否必須在客戶端使用Regsvr32.exe? –
「該程序在我安裝了office 2013的終端正常工作,但是這個錯誤顯示在我的客戶端電腦上」。那麼,這非常簡單,您必須**在運行代碼的機器上安裝Powerpoint(與您的程序相同的位數:32位和64位)。這是沒有辦法的。 –