问题是这样的:
首先我会再我的列表中选中一行数据,我要将一行数据对应的每个单元格的数据更新至Excel模板文件中。
Excel文件模板已经有了,需要更新的字段也都在固定的单元格内。我不清楚对应应该做哪些工作,比如:我要将选中的数据行中第一列的值更新至Excel模板中C12 这个单元格中,我应该怎么操作呢。目前我了解,需要引用Microsoft.Office.Interop.Excel 组件 但是用什么方法还不知道,具体的原理还请高手给予简单的讲解

解决方案 »

  1.   

    baidu  google is your best teacher. easy to search.
      

  2.   


            private void WriteExcel_Step(string filename)
            {
                Application excel = new ApplicationClass();
                _Workbook xBk;
                xBk = excel.Workbooks.Add(true);
                excel.Visible = true;
                progressBar1.Visible = true;
                progressBar1.Maximum = dt.Rows.Count;
                progressBar1.Value = 0;
                progressBar1.Step = 1;
                for (int i=0;i<dt.Columns.Count;i++)
                {
                    excel.Cells[1, i + 1] = dt.Columns[i].Caption;
                }
                int j = 2;
                string s= "";
                foreach (DataRow r in dt.Rows)  //dt是数据集
                {
                    for (int i = 0; i < r.ItemArray.Length; i++)
                    {
                        try
                        {
                            s = "";
                            if (dt.Columns[i].DataType.Name == "String")
                            {
                                s = "'";
                            }
                            if (dt.Columns[i].Caption == "交易日期")
                            {
                                excel.Cells[j, i + 1] = s + ConvertDate(r.ItemArray.GetValue(i).ToString());
                            }
                            else if (dt.Columns[i].Caption == "交易时间")
                            {
                                excel.Cells[j, i + 1] = s + ConvertTime(r.ItemArray.GetValue(i).ToString());
                            }
                            else
                                excel.Cells[j, i + 1] = s + r.ItemArray.GetValue(i).ToString();
                        }
                        catch
                        {
                            continue;
                        }
                    }
                    j++;
                }
                progressBar1.Value = 0;
                progressBar1.Visible = false;
            }
      

  3.   

    if (this.dataGridView1.SelectionMode != DataGridViewSelectionMode.FullColumnSelect)//获取选择行的第一列数据
    {
    int index = dataGridView1.SelectedRows[0].Index; //获取选中行的行号
    string a = dataGridView1.Rows[index].Cells[0].Value.ToString();
    }我说下我的思路,新建一个datatable,讲获取到a的值写入到datatable的第三列第12行,也就是excel的C12.怎么写?新增行,内容都为"空格",新增到12行的时候再第三列写入a。然后遍历datatable,写入到excel,这个代码很多,百度一下就有了。
      

  4.   

    用ASPOSE.CELL,好用
    不推荐用com组件,容易出现关不掉的进程