日期:2014-05-17  浏览次数:20899 次

c#中怎样实现文件的导入的!多提示下。新手
这么回事。单击“导入按钮”导入excel文件到dataview里面去,execel上面的内容和dataview里面的字段对应。各位有做过这个功能的么。介绍下思路或者写下代码都可以的。网上找了半天但是没有看懂。

------解决方案--------------------
C# code

   /// <summary>  
    /// 解析Excel,根据OleDbConnection直接连Excel  
    /// </summary>  
    /// <param name="filePath"></param>  
    /// <param name="name"></param>  
    /// <returns></returns>  
    public static DataSet LoadDataFromExcel(string filePath, string name)  
    {  
      try  
      {  
        string strConn;  
        //  strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + filePath + ";Extended Properties=Excel 8.0";  
        strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=No\"";  
       OleDbConnection OleConn = new OleDbConnection(strConn);  
        OleConn.Open();  
        string sql = "SELECT * FROM [" + name + "$]";//可是更改Sheet名称,比如sheet2,等等   
        OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);  
        DataSet OleDsExcle = new DataSet();  
        OleDaExcel.Fill(OleDsExcle, name);  
        OleConn.Close();  
        return OleDsExcle;  
      }  
      catch (Exception err)  
      {  
        MessageBox.Show("数据绑定Excel失败! 失败原因:" + err.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);  
        return null;  
      }  
    }

------解决方案--------------------

private void button1_Click(object sender, EventArgs e)
{
//调用自定义函数ExportDataGridview
ExportDataGridview(dataGridView1, true);
}
public bool ExportDataGridview(DataGridView dgv, bool isShowExcle)
{
if (dgv.Rows.Count == 0)
return false;
//建立Excel对象
Excel.Application excel = new Excel.Application();

excel.Application.Workbooks.Add(true);
excel.Visible = isShowExcle;
//生成字段名称
for (int i = 0; i < dgv.ColumnCount; i++)
{
excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText;
}
//填充数据
for (int i = 0; i < dgv.RowCount - 1; i++)
{
for (int j = 0; j < dgv.ColumnCount; j++)
{
if (dgv[j, i].ValueType == typeof(string))
{
excel.Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();
}
}
}
return true;
}