Ako na automatizáciu Microsoft Excel z Microsoft Visual C#.NET Tento článok ukazuje ako vytvoriť automatizácie
klient pre program Microsoft Excel pomocou Microsoft Visual C#.NET. Automatizácia je proces, ktorý umožňuje aplikácií, ktoré sú
napísané v jazykoch ako napríklad Visual C#.NET programovo ovládať iné
aplikácie. Automatizácia Excel umožňuje vykonávať akcie ako
vytvoriť nový zošit, pridanie údajov do zošita alebo vytváranie grafov. S
Excel a ďalších aplikáciách balíka Microsoft Office, prakticky všetky akcie
že môžete vykonať manuálne pomocou používateľského rozhrania môže uskutočniť aj
pomocou programovania pomocou automatizácie. Program Excel vystavuje tomto programové
funkčnosť prostredníctvom objektového modelu. Objektový model je kolekcia
tried a metód, ktoré slúžia ako náprotivkami logické komponentov
Excel. Napríklad, existuje Uplatňovanie objekt, Zošit objekt, a Funkcia pracovného hárka objekt, z ktorých každý obsahovať funkčnosť tieto kusy
programu Excel. Prístup k objektovému modelu z Visual C#.NET, môžete nastaviť projektu
odkaz na knižnice typov. Tento článok ukazuje ako nastaviť
riadne projektu odkaz na program Excel typ knižnice pre Visual C#.NET a
poskytuje vzorky kód na automatizáciu programu Excel. Vytvoriť automatizačných klientov programu Microsoft Excel- Spustiť Microsoft Visual Studio.NET.
- Na Súbor ponuky, kliknite na tlačidlo Nové, a potom kliknite na tlačidlo Projekt. Vyberte Windows aplikácie z typov Visual C# projektu. Form1 sa vytvorí na základe predvoleného nastavenia.
- Pridať odkaz na Objektová knižnica programu Microsoft Excel. Chcete urobiť, postupujte nasledovne:
- Na Projekt ponuky, kliknite na tlačidlo Pridať odkaz.
- Na COM kartu, vyhľadajte Programu Microsoft Excel Objektová knižnica, a kliknite na tlačidlo Vyberte.
Poznámka Microsoft Office 2003 obsahuje Primary Interop Assemblies (PIA). Microsoft Office
XP neobsahuje Pia, ale môžu byť stiahnuté.Ďalšie informácie o Office XP Pia, po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:328912
(http://support.microsoft.com/kb/328912/
)
Microsoft Office XP primary objektovému assemblies (PIA) sú k dispozícii na prevzatie - Kliknite na tlačidlo ok v Pridať odkazy dialógové okno prijímať vaše výbery. Ak sa zobrazí výzva na
generovať medzivrstva pre knižnice, ktorý ste vybrali, kliknite na tlačidlo áno.
- Na Zobrazenie menu vyberte Toolbox zobrazenie panela s nástrojmi a potom pridať tlačidlo, na Form1.
- Dvakrát kliknite na Button1. Zobrazí sa okno kód pre formulár.
- V okne kód nahradiť nasledujúci kód
private void button1_Click(object sender, System.EventArgs e)
{
}
s:
private void button1_Click(object sender, System.EventArgs e)
{
Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
Excel.Range oRng;
try
{
//Start Excel and get Application object.
oXL = new Excel.Application();
oXL.Visible = true;
//Get a new workbook.
oWB = (Excel._Workbook)(oXL.Workbooks.Add( Missing.Value ));
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
//Add table headers going cell by cell.
oSheet.Cells[1, 1] = "First Name";
oSheet.Cells[1, 2] = "Last Name";
oSheet.Cells[1, 3] = "Full Name";
oSheet.Cells[1, 4] = "Salary";
//Format A1:D1 as bold, vertical alignment = center.
oSheet.get_Range("A1", "D1").Font.Bold = true;
oSheet.get_Range("A1", "D1").VerticalAlignment =
Excel.XlVAlign.xlVAlignCenter;
// Create an array to multiple values at once.
string[,] saNames = new string[5,2];
saNames[ 0, 0] = "John";
saNames[ 0, 1] = "Smith";
saNames[ 1, 0] = "Tom";
saNames[ 1, 1] = "Brown";
saNames[ 2, 0] = "Sue";
saNames[ 2, 1] = "Thomas";
saNames[ 3, 0] = "Jane";
saNames[ 3, 1] = "Jones";
saNames[ 4, 0] = "Adam";
saNames[ 4, 1] = "Johnson";
//Fill A2:B6 with an array of values (First and Last Names).
oSheet.get_Range("A2", "B6").Value2 = saNames;
//Fill C2:C6 with a relative formula (=A2 & " " & B2).
oRng = oSheet.get_Range("C2", "C6");
oRng.Formula = "=A2 & \" \" & B2";
//Fill D2:D6 with a formula(=RAND()*100000) and apply format.
oRng = oSheet.get_Range("D2", "D6");
oRng.Formula = "=RAND()*100000";
oRng.NumberFormat = "$0.00";
//AutoFit columns A:D.
oRng = oSheet.get_Range("A1", "D1");
oRng.EntireColumn.AutoFit();
//Manipulate a variable number of columns for Quarterly Sales Data.
DisplayQuarterlySales(oSheet);
//Make sure Excel is visible and give the user control
//of Microsoft Excel's lifetime.
oXL.Visible = true;
oXL.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" );
}
}
private void DisplayQuarterlySales(Excel._Worksheet oWS)
{
Excel._Workbook oWB;
Excel.Series oSeries;
Excel.Range oResizeRange;
Excel._Chart oChart;
String sMsg;
int iNumQtrs;
//Determine how many quarters to display data for.
for( iNumQtrs = 4; iNumQtrs >= 2; iNumQtrs--)
{
sMsg = "Enter sales data for ";
sMsg = String.Concat( sMsg, iNumQtrs );
sMsg = String.Concat( sMsg, " quarter(s)?");
DialogResult iRet = MessageBox.Show( sMsg, "Quarterly Sales?",
MessageBoxButtons.YesNo );
if (iRet == DialogResult.Yes)
break;
}
sMsg = "Displaying data for ";
sMsg = String.Concat( sMsg, iNumQtrs );
sMsg = String.Concat( sMsg, " quarter(s)." );
MessageBox.Show( sMsg, "Quarterly Sales" );
//Starting at E1, fill headers for the number of columns selected.
oResizeRange = oWS.get_Range("E1", "E1").get_Resize( Missing.Value, iNumQtrs);
oResizeRange.Formula = "=\"Q\" & COLUMN()-4 & CHAR(10) & \"Sales\"";
//Change the Orientation and WrapText properties for the headers.
oResizeRange.Orientation = 38;
oResizeRange.WrapText = true;
//Fill the interior color of the headers.
oResizeRange.Interior.ColorIndex = 36;
//Fill the columns with a formula and apply a number format.
oResizeRange = oWS.get_Range("E2", "E6").get_Resize( Missing.Value, iNumQtrs);
oResizeRange.Formula = "=RAND()*100";
oResizeRange.NumberFormat = "$0.00";
//Apply borders to the Sales data and headers.
oResizeRange = oWS.get_Range("E1", "E6").get_Resize( Missing.Value, iNumQtrs);
oResizeRange.Borders.Weight = Excel.XlBorderWeight.xlThin;
//Add a Totals formula for the sales data and apply a border.
oResizeRange = oWS.get_Range("E8", "E8").get_Resize( Missing.Value, iNumQtrs);
oResizeRange.Formula = "=SUM(E2:E6)";
oResizeRange.Borders.get_Item( Excel.XlBordersIndex.xlEdgeBottom ).LineStyle
= Excel.XlLineStyle.xlDouble;
oResizeRange.Borders.get_Item( Excel.XlBordersIndex.xlEdgeBottom ).Weight
= Excel.XlBorderWeight.xlThick;
//Add a Chart for the selected data.
oWB = (Excel._Workbook)oWS.Parent;
oChart = (Excel._Chart)oWB.Charts.Add( Missing.Value, Missing.Value,
Missing.Value, Missing.Value );
//Use the ChartWizard to create a new chart from the selected data.
oResizeRange = oWS.get_Range("E2:E6", Missing.Value ).get_Resize(
Missing.Value, iNumQtrs);
oChart.ChartWizard( oResizeRange, Excel.XlChartType.xl3DColumn, Missing.Value,
Excel.XlRowCol.xlColumns, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value );
oSeries = (Excel.Series)oChart.SeriesCollection(1);
oSeries.XValues = oWS.get_Range("A2", "A6");
for( int iRet = 1; iRet <= iNumQtrs; iRet++)
{
oSeries = (Excel.Series)oChart.SeriesCollection(iRet);
String seriesName;
seriesName = "=\"Q";
seriesName = String.Concat( seriesName, iRet );
seriesName = String.Concat( seriesName, "\"" );
oSeries.Name = seriesName;
}
oChart.Location( Excel.XlChartLocation.xlLocationAsObject, oWS.Name );
//Move the chart so as not to cover your data.
oResizeRange = (Excel.Range)oWS.Rows.get_Item(10, Missing.Value );
oWS.Shapes.Item("Chart 1").Top = (float)(double)oResizeRange.Top;
oResizeRange = (Excel.Range)oWS.Columns.get_Item(2, Missing.Value );
oWS.Shapes.Item("Chart 1").Left = (float)(double)oResizeRange.Left;
}
- Prejdite na hornej časti okna pre kód. Doplní sa nasledujúce
riadok na koniec zoznamu pomocou smerníc:
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
Test automatizačných klientov- Stlačte kláves F5 stavať a spustite program.
- Kliknite na tlačidlo Button1 vo formulári. Program spustí program Excel a vyplní údaje na novom
Funkcia pracovného hárka.
- Keď sa zobrazí výzva na zadanie štvrťročných údajov o predaji, kliknite na tlačidlo áno. Graf, ktorý je prepojený s štvrťročných údajov sa pridá do
Funkcia pracovného hárka.
Pre viac informácií navštívte nasledujúce Microsoft Developer
Webová lokalita spoločnosti Network (MSDN): ID článku: 302084 - Posledná kontrola: 31. októbra 2011 - Revízia: 2.0 Informácie v tomto článku sa týkajú nasledujúcich produktov:- Microsoft Visual C# .NET 2003 Standard Edition
- Microsoft Visual C# .NET 2002 Standard Edition
- Microsoft Excel 2002 Standard Edition
| kbpia kbautomation kbhowto kbmt KB302084 KbMtsk |
Strojovo preloženéDÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje. Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 302084
(http://support.microsoft.com/kb/302084/en-us/
)
| |