读书人

c#中怎样实现文件的导入的!多提示上。

发布时间: 2012-09-24 13:49:41 作者: rapoo

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;
}

读书人网 >C#

热点推荐