public void ExportToExcel(string caption, string date, DataGridView dgv)
       {
            //DataGridView可见列数
            int visiblecolumncount = 0;
            for (int i = 0; i < dgv.Columns.Count; i++)
           {
                if (dgv.Columns[i].Visible == true && (dgv.Columns[i] is DataGridViewTextBoxColumn))
                {
                    
                    visiblecolumncount++;
                }
            }            try
           {
                //当前操作列的索引
                int currentcolumnindex = 1;
                //当前操作行的索引                Microsoft.Office.Interop.Excel.ApplicationClass Mylxls = new Microsoft.Office.Interop.Excel.ApplicationClass();
                Mylxls.Application.Workbooks.Add(true);
                Mylxls.Cells.Font.Size = this.textBox1.Text;   //设置默认字体大小
                Mylxls.Cells.Font.Name = this.comboBox4.Text;
                Mylxls.Cells.RowHeight = this.textBox4.Text;
                //设置标头
                Mylxls.Caption = caption;
                //显示表头
                Mylxls.Cells[1, 1] = caption;                //显示时间
                Mylxls.Cells[2, 1] = date;
                for (int i = 0; i < dgv.Columns.Count; i++)
             {
                    if (dgv.Columns[i].Visible == true && (dgv.Columns[i] is DataGridViewTextBoxColumn))   //如果显示
                  {
                        Mylxls.Cells[3, currentcolumnindex] = dgv.Columns[i].HeaderText;
                        Mylxls.get_Range(Mylxls.Cells[3, currentcolumnindex], Mylxls.Cells[3, currentcolumnindex]).Cells.Borders.LineStyle = 1; //设置边框
                        int num= Convert.ToInt32( this.textBox3.Text);
                        Mylxls.get_Range(Mylxls.Cells[3, currentcolumnindex], Mylxls.Cells[3, currentcolumnindex]).ColumnWidth = dgv.Columns[i].Width /num;
                        //Mylxls.get_Range(Mylxls.Cells[3, currentcolumnindex], Mylxls.Cells[3, currentcolumnindex]).RowHeight = 100;
                        Mylxls.get_Range(Mylxls.Cells[3, currentcolumnindex], Mylxls.Cells[3, currentcolumnindex]).Font.Name =this.comboBox4.Text;//粗体
                        //Mylxls.get_Range(Mylxls.Cells[3, currentcolumnindex], Mylxls.Cells[3, currentcolumnindex]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; //居中显示
                        currentcolumnindex++;
                    }
                }
                Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, visiblecolumncount]).MergeCells = true; //合并单元格
                Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, 1]).RowHeight = this.txtLineHeight.Text;   //行高
                Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, 1]).Font.Name = this.comboBox1.Text;
                Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, 1]).Font.Size = this.comboBox2.Text;   //字体大小
                Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, visiblecolumncount]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; //居中显示
                Mylxls.get_Range(Mylxls.Cells[2, 1], Mylxls.Cells[2, 2]).MergeCells = true; //合并
                Mylxls.get_Range(Mylxls.Cells[2, 1], Mylxls.Cells[2, 2]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft; //左边显示
               // Mylxls.get_Range(Mylxls.Cells[1, 2], Mylxls.Cells[1, 2]).ColumnWidth = this.txtColumnWid.Text;  //列宽度                object[,] dataArray = new object[dgv.Rows.Count, visiblecolumncount];现在有excel标头,但标尾怎么设置...
单元格的每列宽度怎么设置.?

解决方案 »

  1.   

    //设置字体大小
    excelRange.Font.Size = 15;
    //设置字体是否有下划线
    excelRange.Font.Underline = true;  
    //设置字体在单元格内的对其方式
    excelRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;
    //设置单元格的宽度
    excelRange.ColumnWidth = 15;
    // 给单元格加边框
    excelRange.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThick, 
     XlColorIndex.xlColorIndexAutomatic, System.Drawing.Color.Black.ToArgb());
    //自动调整列宽
    excelRange.EntireColumn.AutoFit();