C# - 将数据表作为左对齐(左对齐)列导出到 Excel

  • 本文关键字:左对齐 Excel 数据表 c# .net
  • 更新时间 :
  • 英文 :


我正在尝试导出一个数据表,其中充满了前后空格的数字和字母。我正在使用下面的代码导出 - 效果很好。但是,所有列都居中,而不是向左对齐。

如何调整下面的代码以左对齐 excel 工作表?

internal static void Export2Excel(DataTable dataTable, string RevisedFileName)
{
object misValue = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application _appExcel = null;
Microsoft.Office.Interop.Excel.Workbook _excelWorkbook = null;
Microsoft.Office.Interop.Excel.Worksheet _excelWorksheet = null;
try
{
// excel app object
_appExcel = new Microsoft.Office.Interop.Excel.Application();
// excel workbook object added to app
_excelWorkbook = _appExcel.Workbooks.Add(misValue);
_excelWorksheet = _appExcel.ActiveWorkbook.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
// Left align all cells - THIS DOES NOT WORK.
_excelWorksheet.get_Range("A1", "A1").Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
// column names row (range obj)
Microsoft.Office.Interop.Excel.Range _columnsNameRange;
_columnsNameRange = _excelWorksheet.get_Range("A1", misValue).get_Resize(1, dataTable.Columns.Count);
// column names array to be assigned to _columnNameRange
string[] _arrColumnNames = new string[dataTable.Columns.Count];
for (int i = 0; i < dataTable.Columns.Count; i++)
{
// array of column names
_arrColumnNames[i] = dataTable.Columns[i].ColumnName;
}
// assign array to column headers range, make 'em bold
_columnsNameRange.set_Value(misValue, _arrColumnNames);
_columnsNameRange.Font.Bold = true;
// populate data content row by row
for (int Idx = 0; Idx < dataTable.Rows.Count; Idx++)
{
_excelWorksheet.Range["A2"].Offset[Idx].Resize[1, dataTable.Columns.Count].Value =
dataTable.Rows[Idx].ItemArray;
}
// Autofit all Columns in the range
_columnsNameRange.Columns.EntireColumn.AutoFit();


_excelWorkbook.SaveAs(@Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "/" + RevisedFileName + " Revised.xlsx");
_excelWorkbook.Close();
System.Runtime.InteropServices.Marshal.ReleaseComObject(_appExcel);
}
catch { throw; }
MessageBox.Show("Success! Revised file has been saved to Desktop!");
}

我会猜到这条线

_excelWorksheet.get_Range("A1", "A1").Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; 

结尾为

....xlHAlignCenter 

但应该结束类似的东西

....xlHAlignLeft; 

最新更新