Hallo zusammen ich habe ein Methode die mir meine Daten in eine Exceldokument ablegt.
Dies klappt auch.
Das Problem ist, dass das die Seite nur als Hochformat geschrieben ist. Ich hätte gerne aber Landscape bzw. Querformat.
Hier der Code:
Sobald ich (23 + 24):
nutze kommt eine Fehlermeldung:
"Die PageSize-Eigenschaft des PageSetup-Objektes kann nicht festgelegt werden"
Die Zeile 23. bewirkt zudem nichts. die Datei ist immer noch im Hochformat.
Vielleicht kann mir ja jemand helfen.
Gruß
domeemd
Dies klappt auch.
Das Problem ist, dass das die Seite nur als Hochformat geschrieben ist. Ich hätte gerne aber Landscape bzw. Querformat.
Hier der Code:
Java:
private void b_excelausgabe_Click(object sender, EventArgs e)
{
// Variablen deklarieren
Excel.Application myExcelApplication;
Excel.Workbook myExcelWorkbook;
Excel.Worksheet myExcelWorkSheet = null;
myExcelApplication = null;
try
{
// First Contact: Excel Prozess initialisieren
myExcelApplication = new Excel.Application();
myExcelApplication.Visible = true;
myExcelApplication.ScreenUpdating = true;
// Excel Datei anlegen: Workbook
var myCount = myExcelApplication.Workbooks.Count;
myExcelWorkbook = (Excel.Workbook)(myExcelApplication.Workbooks.Add(System.Reflection.Missing.Value));
myExcelWorkSheet = (Excel.Worksheet)myExcelWorkbook.ActiveSheet;
((Excel.Worksheet)myExcelWorkbook.ActiveSheet).PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;
((Excel.Worksheet)myExcelWorkbook.ActiveSheet).PageSetup.PaperSize = Excel.XlPaperSize.xlPaperA4;
myExcelWorkSheet.Cells[2 , 1] = "Zeitraum / period";
myExcelWorkSheet.get_Range("a2", "c2").Merge(true);
myExcelWorkSheet.Cells[2 , 6] = "von\nbis";
myExcelWorkSheet.Cells[2 , 7] = ((Taetigkeit)dgv_tabelle.Rows[0].Tag).set_get_Datum.ToShortDateString() + "\n" + ((Taetigkeit)dgv_tabelle.Rows[dgv_tabelle.Rows.Count - 1].Tag).set_get_Datum.ToShortDateString();
myExcelWorkSheet.Cells[2 , 9] = "Vorname, Name" + "\n" + mitarbeitername;
myExcelWorkSheet.Cells[3 , 1] = "Auftragsdaten " + "\n" + "/contract data";
if (tb_filter_unternehmen.SelectedItem != null)
{
myExcelWorkSheet.Cells[3 , 7] = "Auftraggeber / client" +"\n" + ((Unternehmen)tb_filter_unternehmen.SelectedItem).get_Bezeichnung();
myExcelWorkSheet.get_Range("a3", "c3").Merge(true);
}
else
{
myExcelWorkSheet.Cells[3 , 7] = "Auftraggeber / client" +"\n" + "N/A";
myExcelWorkSheet.get_Range("a3", "c3").Merge(true);
}
if (tb_filter_projekt.SelectedItem != null)
{
myExcelWorkSheet.Cells[3 , 9] = "Projekt, ID" +"\n" + ((Projekt)tb_filter_projekt.SelectedItem).get_Bezeichnung() + ", " + ((Projekt)tb_filter_projekt.SelectedItem).get_ID();
}
else
{
myExcelWorkSheet.Cells[3 , 9] = "Projekt, ID" +"\n" + "N/A";
}
myExcelWorkSheet.Cells[4, 1] = "Datum";
myExcelWorkSheet.Cells[4, 2] = "Beginn" +"\n" + "/Start";
myExcelWorkSheet.Cells[4, 3] = "Kunde" +"\n" + "/Start";
myExcelWorkSheet.Cells[4, 4] = "Kunde" +"\n" + "/End"; ;
myExcelWorkSheet.Cells[4, 5] = "Ende" +"\n" + "/End"; ;
myExcelWorkSheet.Cells[4, 6] = "Pause" +"\n" + "/break " +"\n" + "/min";
myExcelWorkSheet.Cells[4, 7] = "Tätigkeit / activity";
myExcelWorkSheet.Cells[4, 8] = "km" +"\n" + "/total"; ;
myExcelWorkSheet.Cells[4, 9] = "Unterschrift / Kunde";
myExcelWorkSheet.Cells[4, 10] = "Stunden \n /hours";
myExcelWorkSheet.Cells[4, 11] = "Hotel";
myExcelWorkSheet.Cells[4, 12] = "Verkehrsmittel";
// Daten eingeben
for (int i = 0; i < dgv_tabelle.Rows.Count; i++)
{
//[Zeile, Spalte]
myExcelWorkSheet.Cells[5 + i, 1] = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Datum.ToShortDateString();
myExcelWorkSheet.Cells[5 + i, 2] = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Startzeit.ToShortTimeString();
myExcelWorkSheet.Cells[5 + i, 3] = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Startzeit_Kunde.ToShortTimeString();
myExcelWorkSheet.Cells[5 + i, 4] = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Endzeit_Kunde.ToShortTimeString();
myExcelWorkSheet.Cells[5 + i, 5] = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Endzeit.ToShortTimeString();
myExcelWorkSheet.Cells[5 + i, 6] = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Pause;
myExcelWorkSheet.Cells[5 + i, 7] = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Beschreibung;
myExcelWorkSheet.Cells[5 + i, 8] = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Kilometer;
//9 ist Spalte für Unterschrift
TimeSpan arbeitszeit = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Endzeit.Subtract(((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Startzeit);
myExcelWorkSheet.Cells[5 + i, 10] = arbeitszeit.TotalHours.ToString("0.0");
if(((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Hotelnutzung == true)
{
myExcelWorkSheet.Cells[5 + i, 11] = "X";
}
myExcelWorkSheet.Cells[5 + i, 12] = ((Taetigkeit)dgv_tabelle.Rows[i].Tag).set_get_Verkehrsmittel;
}
myExcelWorkSheet.Name = "Leistungsnachweise";
//Zellen mit Rahmen versehen
string cellcoord = "";
Excel.Range formatRange;
for (int i = 0; i < 13; i++)
{
for (int a = 0; a < dgv_tabelle.Rows.Count + 4; a++)
{
cellcoord = numberToAlpha(i, false) + (a + 1).ToString("0");
formatRange = myExcelWorkSheet.get_Range(cellcoord, "l9");
formatRange.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlThin, Excel.XlColorIndex.xlColorIndexAutomatic, Excel.XlColorIndex.xlColorIndexAutomatic);
}
}
//Spaltenbreiten setzen
Excel.Range er = myExcelWorkSheet.get_Range("A:A", System.Type.Missing);
er.EntireColumn.ColumnWidth = 10;
er = myExcelWorkSheet.get_Range("B:B", System.Type.Missing);
er.EntireColumn.ColumnWidth = 6.1;
er = myExcelWorkSheet.get_Range("C:C", System.Type.Missing);
er.EntireColumn.ColumnWidth = 6;
er = myExcelWorkSheet.get_Range("D:D", System.Type.Missing);
er.EntireColumn.ColumnWidth = 6;
er = myExcelWorkSheet.get_Range("E:E", System.Type.Missing);
er.EntireColumn.ColumnWidth = 6;
er = myExcelWorkSheet.get_Range("F:F", System.Type.Missing);
er.EntireColumn.ColumnWidth = 6;
er = myExcelWorkSheet.get_Range("G:G", System.Type.Missing);
er.EntireColumn.ColumnWidth = 32;
er = myExcelWorkSheet.get_Range("H:H", System.Type.Missing);
er.EntireColumn.ColumnWidth = 4.7;
er = myExcelWorkSheet.get_Range("I:I", System.Type.Missing);
er.EntireColumn.ColumnWidth = 30;
er = myExcelWorkSheet.get_Range("J:J", System.Type.Missing);
er.EntireColumn.ColumnWidth = 7.5;
er = myExcelWorkSheet.get_Range("K:K", System.Type.Missing);
er.EntireColumn.ColumnWidth = 4.7;
er = myExcelWorkSheet.get_Range("L:L", System.Type.Missing);
er.EntireColumn.ColumnWidth = 14;
// Excel Datei abspeichern
// wenn die Datei vorher vorhanden ist, kommt in Excel eine Fehlermeldung.
string ablageort = pfad + "\\" + dateiname + ".xlsx";
myExcelWorkbook.SaveAs( ablageort, System.Reflection.Missing.Value);
}
catch (Exception ex)
{
String myErrorString = ex.Message;
//Ursache dieser Fehlermeldung kann nicht gefunden werden, ist aber für Erstellung trivial, daher wird diese Meldung ignoriert.
if (ex.Message != "Ausnahme von HRESULT: 0x800A03EC")
{
MessageBox.Show(myErrorString);
}
}
}
Sobald ich (23 + 24):
Code:
((Excel.Worksheet)myExcelWorkbook.ActiveSheet).PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;
((Excel.Worksheet)myExcelWorkbook.ActiveSheet).PageSetup.PaperSize = Excel.XlPaperSize.xlPaperA4;
nutze kommt eine Fehlermeldung:
"Die PageSize-Eigenschaft des PageSetup-Objektes kann nicht festgelegt werden"
Die Zeile 23. bewirkt zudem nichts. die Datei ist immer noch im Hochformat.
Vielleicht kann mir ja jemand helfen.
Gruß
domeemd