1,#region 设置EXCEL格式
/// <summary>
/// 设置EXCEL自动格式
/// </summary>
/// <param name="sheet"></param>
/// <param name="nRowIndex"></param>
private static void SetWrap(Excel.Worksheet sheet, int nRowIndex)
{
for (int i = 1; i <= 4; i++)
{
Excel.Range range = sheet.Cells[nRowIndex, i] as Excel.Range;
//垂直居上
range.VerticalAlignment = Excel.XlVAlign.xlVAlignTop;
//水平左对其
range.HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft;
//自动换行
range.WrapText = true;
}
}
#endregion
2,#region 打印gridview数据
/// <summary>
/// 打印gridview数据
/// </summary>
/// <param name="grid"></param>
/// <param name="fileName"></param>
/// <param name="print"></param>
/// <returns></returns>
public static string ExportExcel(DataGridView grid, string fileName, bool print)
{
string strReturn = String.Empty;
Excel.Application excelApp = null;
Excel.Workbook workBook = null;
Excel.Worksheet ws = null;
Excel.Range range = null;
Excel.Worksheet sheet = null;
try
{
//一行header,一行空行间隔, +2
int rowCount = grid.Rows.Count + 2;
//最后一列为隐藏列,不导出和打印
int colCount = grid.Columns.Count - 1;
string[,] arr = new string[rowCount, colCount];
for (int i = 0; i < rowCount; i++)
{
if (i == 0)
{
for (int j = 0; j < colCount; j++)
{
arr[i, j] = grid.Columns[j].HeaderText;
}
}
else if (i > 1)
{
for (int j = 0; j < colCount; j++)
{
arr[i, j] = grid.Rows[i - 2].Cells[j].Value.ToString();
}
}
}
excelApp = new Microsoft.Office.Interop.Excel.Application();
workBook = excelApp.Workbooks.Add(Missing.Value);
sheet = workBook.ActiveSheet as Excel.Worksheet;
ws = excelApp.Workbooks[1].Worksheets[1] as Excel.Worksheet;
range = ws.get_Range(ws.Cells[1, 1], ws.Cells[rowCount, colCount]);
range.Value2 = arr;
ws.get_Range(ws.Cells[1, 1], ws.Cells[1, colCount]).Font.Bold = true;
//列宽
excelApp.Columns.ColumnWidth = 19;
excelApp.Columns.VerticalAlignment = Excel.XlVAlign.xlVAlignTop;
excelApp.Columns.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
excelApp.Columns.WrapText = true;
excelApp.Columns.Font.Size = 11;
//Excel.Range headRange = excelApp.Rows[1, 1] as Excel.Range;
//headRange.RowHeight = 28;
//headRange.Font.Name = "宋体";
//headRange.Font.Size = 12;
//headRange.Font.Bold = true;
//headRange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
workBook.SaveAs(fileName, Missing.Value, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, ConflictOption.OverwriteChanges, null, null, null, null);
if (print)
{
excelApp.Visible = true;
//sheet.PrintPreview(Missing.Value);
excelApp.Dialogs[Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogPrint].Show(Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
}
}
catch (Exception ex)
{
strReturn = ex.Message;
}
finally
{
workBook.Close(false, Missing.Value, Missing.Value);
excelApp.Quit();
}
return strReturn;
}
#endregion