/// <summary> /// Excel填充 /// </summary> /// <param name="PLareas"></param> /// <param name="QQzhuangHao"></param> public static void ToExcelTG(List<double> PLareas, List<double> QQzhuangHao) { Microsoft.Office.Interop.Excel.Application appExcel = new Microsoft.Office.Interop.Excel.Application(); //appExcel.Visible = true; appExcel.Caption = "苏州市交通设计研究院"; appExcel.DisplayStatusBar = true; appExcel.StatusBar = "飞鱼制作"; appExcel.ScreenUpdating = false; Workbook book1 = appExcel.Workbooks.Add(Type.Missing); Worksheet sheet1 = (Worksheet)book1.Sheets[1]; sheet1.Name = "道路分段填高表"; Range rng1 = sheet1.get_Range("A3:C7", Type.Missing); rng1.MergeCells = true; rng1.Value2 = "起讫桩号"; rng1 = sheet1.get_Range("d3:d6", Type.Missing); rng1.MergeCells = true; rng1.Value2 = "长度"; rng1 = sheet1.get_Range("d7", Type.Missing); rng1.MergeCells = true; rng1.Value2 = "(m)"; rng1 = sheet1.get_Range("e3:e6", Type.Missing); rng1.MergeCells = true; rng1.Value2 = "面积"; rng1 = sheet1.get_Range("e7", Type.Missing); rng1.MergeCells = true; rng1.Value2 = "(m2)"; rng1.get_Characters(3, 1).Font.Superscript = true; rng1 = sheet1.get_Range("f3:f6", Type.Missing); rng1.MergeCells = true; rng1.Value2 = "填高"; rng1 = sheet1.get_Range("f7", Type.Missing); rng1.MergeCells = true; rng1.Value2 = "(m)"; rng1 = (Range)sheet1.Cells[8, 1]; rng1.Value2 = QQzhuangHao[0]; rng1 = (Range)sheet1.Cells[8, 2]; rng1.Value2 = "~"; rng1 = (Range)sheet1.Cells[8, 3]; rng1.Value2 = QQzhuangHao[1]; rng1 = (Range)sheet1.Cells[8, 4]; rng1.Value2 = "=c8-a8"; rng1 = (Range)sheet1.Cells[8, 5]; rng1.Value2 = PLareas[0]; rng1 = (Range)sheet1.Cells[8, 6]; rng1.Value2 = "=E8/D8/10"; rng1 = (Range)sheet1.Cells[9, 1]; rng1.Value2 = "=c8"; for (int i = 1; i < PLareas.Count - 1; i++) { rng1 = (Range)sheet1.Cells[8 + i, 3]; rng1.Value2 = QQzhuangHao[i + 1]; rng1 = (Range)sheet1.Cells[8 + i, 5]; rng1.Value2 = PLareas[i]; } int TempInt = 8 + PLareas.Count - 1; string tempFormula = "d9:d" + TempInt.ToString(); rng1 = sheet1.get_Range(tempFormula, Type.Missing); sheet1.get_Range("d8", Type.Missing).Copy(rng1); tempFormula = "f9:f" + TempInt.ToString(); rng1 = sheet1.get_Range(tempFormula, Type.Missing); sheet1.get_Range("f8", Type.Missing).Copy(rng1); tempFormula = "a9:a" + TempInt.ToString(); rng1 = sheet1.get_Range(tempFormula, Type.Missing); sheet1.get_Range("a9", Type.Missing).Copy(rng1); tempFormula = "b9:b" + TempInt.ToString(); rng1 = sheet1.get_Range(tempFormula, Type.Missing); sheet1.get_Range("b8", Type.Missing).Copy(rng1); tempFormula = "A8:A" + TempInt.ToString(); sheet1.get_Range(tempFormula, Type.Missing).NumberFormat = "K0+000.000"; tempFormula = "C8:C" + TempInt.ToString(); sheet1.get_Range(tempFormula, Type.Missing).NumberFormat = "K0+000.000"; rng1 = sheet1.UsedRange; rng1.HorizontalAlignment = XlHAlign.xlHAlignCenter; rng1.VerticalAlignment = XlVAlign.xlVAlignCenter; rng1.Borders.LineStyle = XlLineStyle.xlContinuous; tempFormula = "d8:f" + rng1.Count; rng1 = sheet1.get_Range(tempFormula, Type.Missing); rng1.NumberFormat = "0.000"; appExcel.ScreenUpdating = true; } 原文: C#+EXCEL 输出分段填高部分源码