我做的报表是这样的,上部是用c#画的图,下部是一个datagrid表格,现在我想把图和表格一起导出,请问各位前辈高人如何导出

解决方案 »

  1.   

    可导出到EXCEL,WORD等中,addpicture添加图片
    也可使用水晶报表显示图表
      

  2.   

    导入EXCELExcel.Application myExcel = new Excel.Application(); 
    Excel.Workbook xlBook; 
    Excel.Worksheet xlSheet; 
    Excel.Range xlsRange; 
    System.Drawing.Bitmap bmp = new Bitmap(150,20); 
    System.Drawing.Graphics g = Graphics.FromImage(bmp); 
    xlBook = (Excel.Workbook)myExcel.Workbooks.Add(""); 
    xlSheet = (Excel.Worksheet)xlBook.Worksheets[1]; 
    myExcel.Visible = true; 
    xlSheet.Activate(); myExcel.Cells[1, 1] = "123"; 
    myExcel.Cells[1, 2] = "456"; 
    myExcel.Cells[2, 1] = "aaa"; 
    myExcel.Cells[2, 2] = "bbb"; 
    g.DrawLine(new System.Drawing.Pen(System.Drawing.Color.Blue), 1, 1, 100, 100); 
    System.Windows.Forms.Clipboard.SetDataObject(bmp, true); xlsRange = xlSheet.get_Range((Excel.Range)xlSheet.Cells[1,3],(Excel.Range)xlSheet.Cells[1,3]); 
    myExcel.get_Range((Excel.Range)myExcel.Cells[1,3],(Excel.Range)myExcel.Cells[1,3]).ColumnWidth = 30; 
    myExcel.get_Range((Excel.Range)myExcel.Cells[1,3],(Excel.Range)myExcel.Cells[1,3]).RowHeight = 30; 
    xlSheet.Paste(xlsRange, bmp); xlsRange = xlSheet.get_Range((Excel.Range)xlSheet.Cells[2,3],(Excel.Range)xlSheet.Cells[2,3]); 
    myExcel.get_Range((Excel.Range)myExcel.Cells[2,3],(Excel.Range)myExcel.Cells[2,3]).ColumnWidth = 30; 
    myExcel.get_Range((Excel.Range)myExcel.Cells[2,3],(Excel.Range)myExcel.Cells[2,3]).RowHeight = 30; 
    xlSheet.Paste(xlsRange, bmp);
      

  3.   

    很感谢
    SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = "Execl files  (*.xls)|*.xls";
                saveFileDialog.FilterIndex = 0;
                saveFileDialog.RestoreDirectory = true;
                saveFileDialog.CreatePrompt = true;
                saveFileDialog.Title = "Export Excel File To";
                saveFileDialog.ShowDialog();            Stream myStream;
                myStream = saveFileDialog.OpenFile();
                StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
                string str = "";            try
                {
                    
                    //写标题 
                    for (int i = 0; i < frm29.dataGridView1.ColumnCount; i++)
                    {
                        if (i > 0)
                        {
                            str += "\t";
                        }                    str += frm29.dataGridView1.Columns[i].HeaderText;
                    }
                    sw.WriteLine(str);
                    //写内容 
                    for (int j = 0; j < frm29.dataGridView1.Rows.Count; j++)
                    {
                        string tempStr = "";
                        for (int k = 0; k < frm29.dataGridView1.Columns.Count; k++)
                        {
                            if (k > 0)
                            {
                                tempStr += "\t";
                            }
                            tempStr += frm29.dataGridView1.Rows[j].Cells[k].Value + "";
                        }
                        sw.WriteLine(tempStr);
                    }                sw.Close();
                    myStream.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }            finally
                {
                    sw.Close();
                    myStream.Close();
                }请问怎样在这段代码中插入图片
      

  4.   

    http://download.csdn.net/source/2866397
    这里有一个事例,打印,导出都可以实现
      

  5.   

    需要引用Microsoft Excel Object Library1.1(不同的Office,版本号不同)