创建一个工作表,需要首先在项目中添加“Microsoft.Office.Interop.Excel” Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel._Workbook xWb = excel.Workbooks.Add(true); Microsoft.Office.Interop.Excel._Worksheet xWs = (Microsoft.Office.Interop.Excel._Worksheet)xWb.ActiveSheet; excel.DisplayInfoWindow = false; excel.DisplayAlerts = false; xWs.Name = Title; 合并单元格 Microsoft.Office.Interop.Excel.Range rangeConstItem = xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[1, 3]); rangeConstItem.Value2 = "项目名称"; rangeConstItem.Merge(false); 向工作表中填充数据 //项目信息 IList<T_ItemDetail> itemDetailList = DBHelper.GetAllHelper<T_ItemDetail>(string.Format("ItemID = '{0}' and ItemType= 'Cost'", ItemID)); if (itemDetailList != null && itemDetailList.Count > 0) { foreach (T_ItemDetail eachItemDetail in itemDetailList) { ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 2]).Value2 = eachItemDetail.ProductName; ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 3]).Value2 = eachItemDetail.ProductModel; ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 4]).Value2 = eachItemDetail.MeasUnit; ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 5]).Value2 = eachItemDetail.Amount; ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 6]).Value2 = eachItemDetail.OrginEnt; ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 7]).Value2 = eachItemDetail.BuyPrice; ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 8]).Value2 = eachItemDetail.Amount * eachItemDetail.BuyPrice; ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 9]).Value2 = eachItemDetail.SalePrice; ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 10]).Value2 = eachItemDetail.Amount * eachItemDetail.SalePrice; ((Microsoft.Office.Interop.Excel.Range)xWs.Cells[rowPosition, 11]).Value2 = eachItemDetail.BuyDateTime.ToShortDateString(); rowPosition++; //行+1 } } //设置边框 xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideHorizontal].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideHorizontal].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideVertical].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; xWs.get_Range(xWs.Cells[1, 1], xWs.Cells[rowPosition - 1, 11]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideVertical].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;