C# 如何以编程方式格式化excel工作表中的单元格?

C# 如何以编程方式格式化excel工作表中的单元格?,c#,asp.net,excel,C#,Asp.net,Excel,我们有一个asp.net c#程序,它从Excel文件中读取一张工作表,并将其写入新的工作表中(如果数据来自Sql Server表,还可以添加一列) 问题:在新的工作表中,数据的格式不是我们想要的。例如,我们希望日期不带时间且左对齐,但它们的格式为时间且右对齐,等等 如何格式化Excel单元格 这是我们的代码: newSheet = (Worksheet)sheets.Add(sheets[1], Type.Missing, Type.Missing, Type.Missing); newShe

我们有一个asp.net c#程序,它从Excel文件中读取一张工作表,并将其写入新的工作表中(如果数据来自Sql Server表,还可以添加一列)

问题:在新的工作表中,数据的格式不是我们想要的。例如,我们希望日期不带时间且左对齐,但它们的格式为时间且右对齐,等等

如何格式化Excel单元格

这是我们的代码:

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();
newSheet=(工作表)sheets.Add(sheets[1],Type.Missing,Type.Missing,Type.Missing);
newSheet.Name=工作表名称;
for(int i=0;i
只需设置单元格(范围)对象

设置NumberFormat以控制单元格,即:

设置水平对齐以控制对齐,即:

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

我这样说,但有一个语法错误:newSheet.Cells[I+2,3]=drugorder.DATE;水平对齐==ExcelAlignment.xlLeft;错误2“System.Windows.Forms.HorizontalAlignment”是“类型”,但与“变量”一样使用C:\ADL\ExcelReader\ExcelReader\Form1.cs 257 68 ExcelReader错误3仅限赋值、调用、递增、递减,新的对象表达式可以用作语句C:\ADL\ExcelReader\ExcelReader\Form1.cs 257 68 ExcelReaderThat,因为您刚刚从Alain复制并粘贴了答案。发生错误的原因是您正在使用ExcelAlignment.xlLeft;相反,尝试使用rng.HorizontalAlignment=XlHAlign.xlHAlignLeft@ahmd0修复了链接
newSheet.Cells[i, j].HorizontalAlignment = ExcelAlignment.xlLeft; //or Excel.XlHAlign.xlHAlignLeft