16 Stimmen

Wie formatiere ich Zellen in einer Exceltabelle programmatisch?

Wir haben ein asp.net c#-Programm, das ein Blatt aus einer Excel-Datei liest und schreibt es in ein neues Blatt (auch eine Spalte hinzufügen, wenn Daten aus einer SQL-Server-Tabelle kommen).

Problem: In dem neuen Blatt sind die Daten nicht wie gewünscht formatiert. Wir wollen z. B. das Datum ohne Uhrzeit und linksbündig, aber sie sind mit der Uhrzeit formatiert und rechtsbündig, usw.

Wie kann man eine Excel-Zelle formatieren?

Dies ist unser Code:

newSheet = (Worksheet)sheets.Add(sheets[1], Type.Missing, Type.Missing, Type.Missing);
newSheet.Name = worksheetName;

for (int i = 0; i < headerList.Count; i++)
{
    newSheet.Cells[1, i + 1] = headerList[i];
    Range headerRange = newSheet.Cells[1, headerList.Count]; ;
    headerRange.Font.Bold = true;
}
for (int i = 0; i < listDrugOrder.Count; i++)
{
    DrugOrder drugorder = listDrugOrder[i];

    newSheet.Cells[i + 2, 1] = drugorder.RES_ID;
    newSheet.Cells[i + 2, 2] = drugorder.STATION;
    newSheet.Cells[i + 2, 3] = drugorder.DATE;
    newSheet.Cells[i + 2, 4] = drugorder.DRUG;
    newSheet.Cells[i + 2, 5] = drugorder.NDC;
    newSheet.Cells[i + 2, 6] = drugorder.UNITS_PER_DOSE;
    newSheet.Cells[i + 2, 7] = drugorder.FORM;
    newSheet.Cells[i + 2, 8] = drugorder.ROUTE;

    newSheet.Cells[i + 2, 10] = drugorder.FREQUENCY;
    newSheet.Cells[i + 2, 11] = drugorder.Heading_LAKE_ORDERS;
    newSheet.Cells[i + 2, 12] = drugorder.HOA;
    newSheet.Cells[i + 2, 13] = drugorder.INSTRUCTIONS;
    newSheet.Cells[i + 2, 14] = drugorder.DIAGNOSIS;
    newSheet.Cells[i + 2, 15] = drugorder.DIAGNOSIS_CODES;
    newSheet.Cells[i + 2, 16] = drugorder.MAR;
    newSheet.Cells[i + 2, 17] = drugorder.TAR;
    newSheet.Cells[i + 2, 18] = drugorder.DRUG_ALERT;
}

workbook.Save();
workbook.Close(null, null, null);
excelApp.Quit();

19voto

Alain Punkte 25558

Einfach einstellen die entsprechende Eigenschaft auf Ihre Zell(bereichs)objekte.

NumberFormat einstellen, um die Zelle zu steuern Zahlenformatierung d.h.:

newSheet.Cells[i, j].NumberFormat = "m/d/yyyy"

Setzen Sie HorizontalAlignment, um die Ausrichtung zu kontrollieren, d.h.:

newSheet.Cells[i, j].HorizontalAlignment = ExcelAlignment.xlLeft; //or Excel.XlHAlign.xlHAlignLeft

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X