Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az elnevezett argumentumok és az opcionális argumentumok növelik a C#-programozás kényelmét, rugalmasságát és olvashatóságát. Ezen kívül ezek a funkciók nagyban megkönnyítik a COM-felületekhez, például a Microsoft Office automation API-khoz való hozzáférést.
Fontos
A VSTO (Visual Studio Tools for Office) a .NET-keretrendszerre támaszkodik. A COM-bővítmények a .NET-keretrendszerrel is írhatók. Az Office-bővítmények nem hozhatók létre a .NET Core és a .NET 5+ legújabb verzióival. Ennek az az oka, hogy a .NET Core/.NET 5+ nem tud együttműködni a .NET-keretrendszerrel ugyanabban a folyamatban, és bővítménybetöltési hibákhoz vezethet. A .NET-keretrendszer használatával továbbra is írhat VSTO- és COM-bővítményeket az Office-hoz. A Microsoft nem frissíti a VSTO-t vagy a COM bővítményplatformot a .NET Core vagy a .NET 5+ használatára. Az Office Web-bővítmények kiszolgálóoldalának létrehozásához a .NET Core és a .NET 5+ (beleértve a ASP.NET Core-t) is használhatja.
A következő példában a ConvertToTable metódus 16 paraméterrel rendelkezik, amelyek egy tábla jellemzőit jelölik, például az oszlopok és sorok számát, a formázást, a szegélyeket, a betűtípusokat és a színeket. Mind a 16 paraméter megadása nem kötelező, mert a legtöbb esetben nem szeretné mindegyikhez megadni az adott értékeket. Névvel ellátott és választható argumentumok nélkül azonban meg kell adnia egy értéket vagy egy helyőrző értéket. Névvel ellátott és nem kötelező argumentumokkal csak a projekthez szükséges paraméterek értékeit adja meg.
Az eljárások elvégzéséhez telepítenie kell a Microsoft Office Word alkalmazást a számítógépre.
Megjegyzés:
Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a Visual Studio felhasználói felületének egyes elemeihez az alábbi utasításokban. Ezeket az elemeket a Visual Studio-kiadás és a használt beállítások határozzák meg. További információért lásd: A fejlesztői környezet személyre szabása.
Új konzolalkalmazás létrehozása
Indítsa el a Visual Studiót. A Fájl menüben mutasson az Új pontra, majd válassza a Project lehetőséget. A Sablonok kategóriái panelen bontsa ki a C# elemet, majd válassza a Windows lehetőséget. A Sablonok panel tetején ellenőrizze, hogy a .NET-keretrendszer 4 megjelenik-e a Target Framework mezőben. A Sablonok panelen válassza a Konzolalkalmazás lehetőséget. Írja be a projekt nevét a Név mezőbe. Kattintson az OK gombra. Az új projekt megjelenik a Megoldáskezelőben.
Hivatkozás hozzáadása
A Megoldáskezelőben kattintson a jobb gombbal a projekt nevére, majd válassza a Hivatkozás hozzáadása lehetőséget. Megjelenik a Hivatkozás hozzáadása párbeszédpanel. A .NET lapon válassza a Microsoft.Office.Interop.Word lehetőséget az Összetevő neve listában. Kattintson az OK gombra.
A szükséges irányelvek hozzáadása
A Megoldáskezelőben kattintson a jobb gombbal a Program.cs fájlra, majd válassza a Kód megtekintése parancsot. Adja hozzá a következő using irányelveket a kódfájl elejéhez:
using Word = Microsoft.Office.Interop.Word;
Szöveg megjelenítése Word-dokumentumban
Program A Program.cs osztályban adja hozzá a következő metódust Egy Word-alkalmazás és egy Word-dokumentum létrehozásához. Az Add metódus négy választható paramétert kínál. Ez a példa az alapértelmezett értékeket használja. Ezért a hívó utasításban nincs szükség argumentumokra.
Megjegyzés:
A COM-szálkezelés és az időzítés olyan problémáinak elkerülése érdekében, amelyek olyan kivételeket okozhatnak, mint a "Az üzenetszűrő azt jelzi, hogy az alkalmazás foglalt" (HRESULT 0x8001010A), a Word-alkalmazás láthatatlan marad a műveletek során, és csak az összes művelet befejezése után láthatóvá válik.
static void DisplayInWord()
{
var wordApp = new Word.Application();
// Keep Word invisible during operations to avoid COM threading issues
wordApp.Visible = false;
// docs is a collection of all the Document objects currently
// open in Word.
Word.Documents docs = wordApp.Documents;
// Add a document to the collection and name it doc.
Word.Document doc = docs.Add();
// Make Word visible after operations are complete
wordApp.Visible = true;
}
Adja hozzá a következő kódot a metódus végén annak meghatározásához, hogy hol jelenjen meg a szöveg a dokumentumban, és milyen szöveget jelenítsen meg:
// Define a range, a contiguous area in the document, by specifying
// a starting and ending character position. Currently, the document
// is empty.
Word.Range range = doc.Range(0, 0);
// Use the InsertAfter method to insert a string at the end of the
// current range.
range.InsertAfter("Testing, testing, testing. . .");
Az alkalmazás futtatása
Adja hozzá a következő utasítást a Mainhoz:
DisplayInWord();
A projekt futtatásához nyomja le a CTRLF5billentyűkombinációt+. Megjelenik egy Word-dokumentum, amely a megadott szöveget tartalmazza.
A szöveget alakítsa át táblázattá
A metódussal ConvertToTable a szöveget egy táblázatba ágyazhatja. A metódusnak 16 választható paramétere van. Az IntelliSense zárójelbe foglalja az opcionális paramétereket, ahogy az az alábbi ábrán is látható. Az alapértelmezett értékek Type.Missing a következők egyszerű neve: System.Type.Missing.
A névvel ellátott és választható argumentumok lehetővé teszik, hogy csak a módosítani kívánt paraméterek értékeit adja meg. A táblázat létrehozásához adja hozzá a következő kódot a metódus DisplayInWord végéhez. Az argumentum azt határozza meg, hogy a range szöveges sztringben lévő vesszők elválasztják a táblázat celláit.
// Convert to a simple table. The table will have a single row with
// three columns.
range.ConvertToTable(Separator: ",");
A projekt futtatásához nyomja le a CTRLF5billentyűkombinációt+.
Kísérletezzen más paraméterekkel
Módosítsa úgy a táblázatot, hogy egy oszlopból és három sorból áll, cserélje le az utolsó sort DisplayInWord a következő utasításra, majd írja be a CTRLF5billentyűkombinációt+.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
Adja meg a táblázat előre definiált formátumát, cserélje le az utolsó sort DisplayInWord a következő utasításra, majd írja be a CTRLF5billentyűkombinációt+. A formátum a WdTableFormat-állandók bármelyike lehet.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
Format: Word.WdTableFormat.wdTableFormatElegant);
példa
A következő kód a teljes példát tartalmazza:
using System;
using Word = Microsoft.Office.Interop.Word;
namespace OfficeHowTo
{
class WordProgram
{
static void Main(string[] args)
{
DisplayInWord();
}
static void DisplayInWord()
{
var wordApp = new Word.Application();
// Keep Word invisible during operations to avoid COM threading issues
wordApp.Visible = false;
// docs is a collection of all the Document objects currently
// open in Word.
Word.Documents docs = wordApp.Documents;
// Add a document to the collection and name it doc.
Word.Document doc = docs.Add();
// Define a range, a contiguous area in the document, by specifying
// a starting and ending character position. Currently, the document
// is empty.
Word.Range range = doc.Range(0, 0);
// Use the InsertAfter method to insert a string at the end of the
// current range.
range.InsertAfter("Testing, testing, testing. . .");
// You can comment out any or all of the following statements to
// see the effect of each one in the Word document.
// Next, use the ConvertToTable method to put the text into a table.
// The method has 16 optional parameters. You only have to specify
// values for those you want to change.
// Convert to a simple table. The table will have a single row with
// three columns.
range.ConvertToTable(Separator: ",");
// Change to a single column with three rows..
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
// Format the table.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
Format: Word.WdTableFormat.wdTableFormatElegant);
// Make Word visible after all operations are complete
wordApp.Visible = true;
}
}
}