c# - C# - 将 DataTable 作为左对齐(左对齐)列导出到 Excel
问题描述
我正在尝试导出一个充满数字和字母的数据表,前后有间距。我正在使用下面的代码导出-效果很好。但是,所有列都居中而不是左对齐。
如何调整下面的代码以左对齐 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;
推荐阅读
- python - 使用 time.sleep 处理键盘中断异常
- reactjs - MapView.Polyline 在与 expo 的本机反应中引发错误(我正在使用 android 进行测试)
- swift - y 位置需要约束,x 位置需要约束
- html - 为什么我的动画在悬停时会卡顿?
- c++ - 尝试使用 Flt 函数与用户模式程序通信(在内核中)
- vba - 在 Excel 上运行基于硒的宏,同时能够在 PC 上执行其他操作
- python - 格式化numpy数组浮点值时出错
- javascript - for 循环不会处理 getElementsByClassName 找到的每个元素
- android - 如何关闭 android 11、小米红米 Note 9S 的所有振动(振动马达)
- r - 在 Spark R 中读取制表符分隔的文本文件