问题描述
我们有一个asp.net c#程序,从Excel文件中读取一个表格,并将其写入新的工作表(如果数据来自Sql Server表,也添加一列)。
We have an asp.net c# program that reads a sheet from an Excel file and writes it out in a new sheet (also adding one column if data come from a Sql Server table).
问题:在新表中,数据没有我们想要的格式。例如,我们希望日期没有时间和左对齐,但它们的格式与时间和右对齐等。
Issue: in the new sheet the data is not formatted as we want. For example we want date without time and left-aligned, but they're formatted with the time and right-aligned, etc.
我们如何格式化Excel单元格?
How can we format an Excel cell?
这是我们的代码:
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();
推荐答案
只需设置。
设置NumberFormat以控制单元格数字格式化,即:
Set NumberFormat to control the cell number formatting, i.e.:
newSheet.Cells[i, j].NumberFormat = "m/d/yyyy"
设置HorizontalAlignment以控制对齐方式,即:
Set HorizontalAlignment to control the alignment, i.e.:
newSheet.Cells[i, j].HorizontalAlignment = ExcelAlignment.xlLeft; //or Excel.XlHAlign.xlHAlignLeft
这篇关于如何以编程方式格式化excel表单元格?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!