记录,C#的winform导出Excel
public void DataTableToExcel(System.Data.DataTable dataTable, string strTitle, string[] strHead, int[] columnWidth) { int nMax = dataTable.Rows.Count; int nMin = 0; int rowCount = nMax - nMin + 1;//总行数 const int columnCount = 7;//总列数 //创建Excel对象 Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); //新建工作簿 Workbook workBook = excelApp.Workbooks.Add(true); //新建工作表 Worksheet worksheet = workBook.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet; 设置标题 Microsoft.Office.Interop.Excel.Range titleRange = worksheet.Range[worksheet.Cells[1, 1], worksheet.Cells[1, columnCount]];//选取单元格 titleRange.Merge(true); //合并单元格 titleRange.Value2 = strTitle; //设置单元格内文本 titleRange.Font.Name = "微软雅黑"; //设置字体 titleRange.Font.Size = 18; //字体大小 titleRange.Font.Bold = true; //加粗显示 titleRange.HorizontalAlignment = XlHAlign.xlHAlignCenter; //水平居中 titleRange.VerticalAlignment = XlVAlign.xlVAlignCenter; //垂直居中 titleRange.Borders.LineStyle = XlLineStyle.xlContinuous; //设置边框 titleRange.Borders.Weight = XlBorderWeight.xlThin; //边框常规粗细 //设置表头 //string[] strHead = new string[columnCount] { "id", "productUid", "productBarcode", "checkData", "checkResult", "creater", "checkDate" }; //int[] columnWidth = new int[columnCount] { 8, 24, 24, 22, 10, 14, 20 }; for (int i = 0; i < columnCount; i++) { Microsoft.Office.Interop.Excel.Range headRange = worksheet.Cells[2, i + 1] as Microsoft.Office.Interop.Excel.Range;//获取表头单元格,不用标题则从1开始 headRange.Value2 = strHead[i]; //设置单元格文本 headRange.Font.Name = "Consolas"; //设置字体 headRange.Font.Size = 13; //字体大小 headRange.Font.Bold = true; //加粗显示 headRange.HorizontalAlignment = XlHAlign.xlHAlignCenter; //水平居中 headRange.VerticalAlignment = XlVAlign.xlVAlignCenter; //垂直居中 headRange.ColumnWidth = columnWidth[i]; //设置列宽 headRange.Borders.LineStyle = XlLineStyle.xlContinuous; //设置边框 headRange.Borders.Weight = XlBorderWeight.xlThin; //边框常规粗细 } //设置每列格式 for (int i = 0; i < columnCount; i++) { Microsoft.Office.Interop.Excel.Range contentRange = worksheet.Range[worksheet.Cells[2, i + 1], worksheet.Cells[rowCount - 1 + 3, i + 1]];//不用标题则从第二行开始 contentRange.Font.Name = "Consolas"; contentRange.Font.Size = 10; contentRange.HorizontalAlignment = XlHAlign.xlHAlignCenter; //水平居中 contentRange.VerticalAlignment = XlVAlign.xlVAlignCenter; //垂直居中 contentRange.Borders.LineStyle = XlLineStyle.xlContinuous; //设置边框 contentRange.Borders.Weight = XlBorderWeight.xlThin; //边框常规粗细 contentRange.WrapText = true; //自动换行 contentRange.NumberFormatLocal = "@"; //文本格式 } //填充数据 for (int i = 0; i < dataTable.Rows.Count; i++) { DataRow row = dataTable.Rows[i]; for (int j = 0; j < dataTable.Columns.Count; j++) { excelApp.Cells[i + 3, j + 1] = row[j].ToString(); } } //设置Excel可见 excelApp.Visible = true; }