菜鸟求救,急,关于Excel的
admin 发表于 2010-04-21 | 来源:互联网 | 阅读:

我用C#从一个txt文件中读入了一组数据,想把这组数据写入到Excel表格中,如何实现了?还有需要加什么头文件才能操作Excel表格了?急啊,请高手指点啊!

已经有4 个评论
  1. nrc001 说:

    以前有很多这个帖子,再转贴一下:在使用用本文的方法前,需要先安装Office 的Excel程序,然后,引用 Excel 的对象包装:using Microsoft.Office.Interop.Excel;  不同的Office版本可能引用的名称不同。使用下面的代码,完成数据写入操作:C# code
    private void writeData(string excelFileName,DataSet dsResult,)
    {
    _Application xlApp = null;
    _Workbook xlWorkbook = null;
    _Worksheet xlWorksheet = null;

    System.Reflection.Missing missing = System.Reflection.Missing.Value;
    string saveAsPath = "";

    try
    {
    xlApp = new ApplicationClass();
    xlApp.Visible =true ;
    xlWorkbook=xlApp.Workbooks.Open(excelFileName, missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing);

    xlWorksheet = xlWorkbook.Worksheets[1] as _Worksheet;
    //xlWorksheet.Name = "NewWorksheet";
    //xlWorksheet.Cells[1, "A"] = "Topic: ";
    //xlWorksheet.Cells[1, "B"] = ".Net Interop Excel Demo";

    for (int x = 4; x < 92; x++)
    {
    object rang = xlWorksheet.Cells[x, "D"];
    if (rang != null)
    {
    object objText = ((Range)rang).Value2;
    string strCellText = objText==null?"":objText.ToString();
    if (strCellText == "")
    {
    rang = xlWorksheet.Cells[x, "C"];
    strCellText = "";
    if (rang != null)
    {
    objText = ((Range)rang).Value2;
    strCellText = objText == null ? "" : objText.ToString();
    }

    }
    //xlWorksheet.Cells[x, "E"] = strCellText;
    DataRow[] rows = dsResult.Tables[0].Select("Name=’" + strCellText + "’");
    if (rows.Length > 0)
    {
    //防止有空值
    if(rows[0]["Count"]!=DBNull.Value )
    xlWorksheet.Cells[x, "H"] = rows[0]["Count"].ToString();

    }
    }

    }

    xlWorkbook.Save();

    //saveAsPath = System.Windows.Forms.Application.StartupPath + "\\" + xlWorkbook.Name;
    //xlWorkbook.SaveAs(saveAsPath, missing, missing, missing, missing,
    // missing, XlSaveAsAccessMode.xlShared, missing, missing, missing,
    // missing, missing);
    //xlApp.Quit();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    finally
    {
    //System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
    //xlApp = null;
    //GC.Collect();
    }
    }
    本例没有直接关闭文件,如果你要另存为一个文件,把注释取消即可。注意获取单元格的方法:

  2. look 说:

    学习了!@

  3. WOOMYWOODY 说:

    1楼的方法可以做到,还要还要导一个包

  4. forestyaser 说:

    C# code

    using (SqlConnection conn = new SqlConnection(@"Server=127.0.0.1;Initial Catalog=demo;Uid=sa;Pwd=111111;"))
    {
    conn.Open();
    SqlCommand cmd = new SqlCommand(@"select * from test", conn);
    SqlDataAdapter ada = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    ada.Fill(ds);
    System.Data.DataTable t = ds.Tables[0];
    if (t == null) return;
    try
    {
    string fname2 = "d:\\";
    string fname1 = "T_" + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
    string FileName = fname2 + fname1 + ".xls";

    FileStream objFileStream;
    StreamWriter objStreamWriter;
    string strLine = "";
    objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
    objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode);

    //插入标题
    for (int i = 0; i < t.Columns.Count; i++)
    {
    strLine = strLine + t.Columns[i].ColumnName.ToString() + Convert.ToChar(9);
    }
    objStreamWriter.WriteLine(strLine);
    strLine = "";

    //开始插入数据
    for (int i = 0; i < t.Rows.Count; i++)
    {
    //表格的自动编号strLine = strLine + (i+1) +Convert.ToChar(9);
    for (int j = 0; j < t.Columns.Count; j++)
    {
    strLine = strLine + t.Rows[i][j].ToString() + Convert.ToChar(9);
    }
    objStreamWriter.WriteLine(strLine);
    strLine = "";
    }
    objStreamWriter.Close();
    objFileStream.Close();
    }
    catch
    {
    MessageBox.Show("生成xls文件时发生错误");
    }
    }

    这是从数据库读出后生成xls,改改就可以了

我要评论

评论功能因故关闭!

请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)


返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明