您的位置:首页 > 编程语言 > C#

c#利用office组件导出

2014-12-16 14:58 232 查看
Microsoft.Office.Interop.Excel.Application excel1 = new Microsoft.Office.Interop.Excel.Application();

Worksheet worksheet1= (Worksheet)excel1.Worksheets[1];

Microsoft.Office.Interop.Excel.Range range = worksheet1.Range[worksheet1.Cells[4, 1], worksheet1.Cells[8, 1]];//获取Excel多个单元格区域

1.合并单元格

range.Merge(0);//单元格合并动作

worksheet1.Cells[4, 1] = "项目";//为合并的单元格赋值

---------

2.给单元格加边框

//内外边框都显示

range.Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;

range.Borders.Weight = 3;//边框线的粗细


//只显示外边框

range.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlMedium, XlColorIndex.xlColorIndexAutomatic, System.Drawing.Color.Black.ToArgb());

---------

3.设置单元格的宽度,和自动调整列宽

excelRange.ColumnWidth = 15;//设置单元格的宽度

rang.EntireColumn.AutoFit();//自动调整列宽

---------

4.设置背景填充颜色

range.Interior.ColorIndex = 8;

---------

5.其他小设置

range.Font.Size = 15; //设置字体大小

range.Font.Underline=true; //设置字体是否有下划线

range.Font.Name="黑体"; 设置字体的种类

range.HorizontalAlignment=XlHAlign.xlHAlignCenter; //设置字体在单元格内的对其方式 range.ColumnWidth=15; //设置单元格的宽度

range.Cells.Interior.Color=System.Drawing.Color.FromArgb(255,204,153).ToArgb(); //设置单元格的背景range.Borders.LineStyle=1; //设置单元格边框的粗细

range.EntireColumn.AutoFit();//自动调整列宽

range.HorizontalAlignment= xlCenter; // 文本水平居中方式

range.VerticalAlignment= xlCenter //文本垂直居中方式

range.WrapText=true; //文本自动换行

range.Interior.ColorIndex=39; //填充颜色为淡紫色

range.Font.Color=clBlue; //字体颜色

------------------【华丽丽的分割线又来了,哈哈哈】--------------------------------

【代码示例和效果显示,吼吼】

Microsoft.Office.Interop.Excel.Application excel1 = new Microsoft.Office.Interop.Excel.Application();

try

{
    DateTime startTime = startDateTime.Value;
    DateTime endTime = endDateTime.Value;
    string filename = "D:\\Mini充值对账明细" + startTime.ToString("yyyyMMdd") + "-" + endTime.ToString("yyyyMMdd") + ".xlsx";
    //创建 
    Workbook workbook1 = excel1.Workbooks.Add(true);
    Worksheet worksheet1;
    //判断Excel是否存在
    if (File.Exists(filename))
    {
        //如果excel已经存在,就打开excel,在里面重新新建一选项卡
         Workbook xBook = excel1.Workbooks._Open(filename, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value);
         worksheet1 = (Microsoft.Office.Interop.Excel.Worksheet)xBook.Worksheets.Add(Missing.Value, Missing.Value, 1, Missing.Value);

    }
    else
    {

        //不存在的话,直接选择第一个选项卡进行操作
        worksheet1 = (Worksheet)excel1.Worksheets[1];

     }

worksheet1.Name = "汇总";//选项卡的名称

//-----------------------写入内容

#region --------------不一致的情况

                   //腾讯
                   DataSet dsNotSame1 = TencentMiniManager.GetV_TenMethod(startTime, endTime, "v_NotSameTen");
                   if (dsNotSame1.Tables[0].Rows.Count > 0)
                   {

                       worksheet1.Cells[startRows + 3, 1] = "不一致的情况";
                       Microsoft.Office.Interop.Excel.Range range5 = worksheet1.Range[worksheet1.Cells[startRows + 3, 1], worksheet1.Cells[startRows
+ 3, 1]];
                       range5.Interior.ColorIndex = 8;
                       //项目合并单元格
                       Microsoft.Office.Interop.Excel.Range range5_1 = worksheet1.Range[worksheet1.Cells[startRows + 4, 1], worksheet1.Cells[startRows
+ 5, 1]];
                       range5_1.Merge(0);
                       worksheet1.Cells[startRows + 4, 1] = "项目";

                       Microsoft.Office.Interop.Excel.Range range5_2 = worksheet1.Range[worksheet1.Cells[startRows + 4, 2], worksheet1.Cells[startRows
+ 4, 3]];
                       range5_2.Merge(0);
                       worksheet1.Cells[startRows + 4, 2] = "腾讯";

                       Microsoft.Office.Interop.Excel.Range range5_3 = worksheet1.Range[worksheet1.Cells[startRows + 4, 4], worksheet1.Cells[startRows
+ 4, 5]];
                       range5_3.Merge(0);
                       worksheet1.Cells[startRows + 4, 4] = "支付公司";
                       worksheet1.Cells[startRows + 5, 2] = "笔数";
                       worksheet1.Cells[startRows + 5, 3] = "面额";
                       worksheet1.Cells[startRows + 5, 4] = "笔数";
                       worksheet1.Cells[startRows + 5, 5] = "订单金额";
                       Microsoft.Office.Interop.Excel.Range range5_4 = worksheet1.Range[worksheet1.Cells[startRows + 4, 1], worksheet1.Cells[startRows
+ 5, 5]];
                       range5_4.Interior.ColorIndex = 15;
                       int startRange5 = startRows + 4;
                       startRows = startRows + 6;

                       int _rows1 = 0;
                       //支付公司总计
                       float paySum1 = 0;
                       float paySum2 = 0;
                       if (dsNotSame1 != null && dsNotSame1.Tables[0].Rows.Count > 0)
                       {
                           _rows1 = dsNotSame1.Tables[0].Rows.Count;
                           for (int i = 0; i < _rows1; i++)
                           {
                               for (int j = 0; j < 3; j++)
   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net excel 导出 c#