当前位置:编程学习 > C#/ASP.NET >>

c#操作excel

怎么样用c#编写程序。实现excel插入一列,在网上找的代码excelhelper.cs
 public void InsertColumns(int colIndex, int count, Excel.Worksheet workSheet)
        {
            try
            {
                Excel.Range range = (Excel.Range)workSheet.Columns[colIndex, this.missing];

                for (int i = 0; i < count; i++)
                {
                    range.Insert(Excel.XlDirection.xlToLeft);
                }
             
            }
            catch (Exception e)
            {
                throw e;
            }
        }

以上代码不好用
望做过这方面的高手不吝赐教
qq:176099568 --------------------编程问答-------------------- 这么久怎么还没人回啊 --------------------编程问答-------------------- 这是我写的一个读写excel文件的类
你可以自己改一下功能都实现了

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop.Excel;
using Excel = Microsoft.Office.Interop.Excel;
using System.Windows.Forms;
using System.IO;
using System.Collections;
using System.Text.RegularExpressions;

namespace WindowsFormsApplication3
{
  public class ConvertExecl
  {
    //创建Application对象     
    static Excel.Application _app = null;
    static Workbooks _workbooks = null;
    static _Workbook _workbook = null;
    static Sheets _sheets = null;
    static _Worksheet _workSheet = null;
    object m_objOpt = System.Reflection.Missing.Value;
    string _strResult = null;
    string _strResult2 = null;
    string _file = null;
    public ConvertExecl()
    {

    }
    ~ConvertExecl()
    {
      close();
    }
    public void Init()
    {
      close();
      _app = new Excel.ApplicationClass();
      _workbooks = _app.Workbooks;

      _app.Visible = false;
      _app.UserControl = true;
      _app.DisplayAlerts = false;
    }
    /// <summary>
    /// 关闭Excle
    /// </summary>
    public void close()
    {
      if (_app == null) return;

      _app.Workbooks.Close();
      _app.Quit();
      _app = null;
      _sheets = null;
      _workSheet = null;
      _workbook = null;
      _workbooks = null;

      GC.Collect();
    }
    public bool open(string file)
    {
      try
      {
        Init();
        _file = file;
        _workbook = _workbooks.Add(file);
        return true;
      }
      catch (System.Exception e)
      {
        MessageBox.Show(e.Message);
      }

      return false;

    }
    public void loadSheet()
    {
      int rowCount = 0;
      int i = 0;

      ItemManagement.Clear(ItemType.All);

      foreach (_Worksheet wsheet in _workbook.Worksheets)
      {
        rowCount = wsheet.UsedRange.Rows.Count;
        if (wsheet.Name.ToLower() == "c")
        {
          ItemC _item = null;
          try
          {
            for (i = 3; i <= rowCount; i++)
            {
              _item = new ItemC();
              _item.mark = ItemType.ItemC;

              _item.id = wsheet.get_Range("A" + i, System.Reflection.Missing.Value).Text.ToString();
              _item.name = wsheet.get_Range("B" + i, System.Reflection.Missing.Value).Text.ToString();
              _item.gender = Convert.ToInt32(wsheet.get_Range("C" + i, System.Reflection.Missing.Value).Text.ToString());
              _item.job = Convert.ToInt32(wsheet.get_Range("D" + i, System.Reflection.Missing.Value).Text.ToString());
              _item.dir = Convert.ToInt32(wsheet.get_Range("E" + i, System.Reflection.Missing.Value).Text.ToString());
              _item.action = Convert.ToInt32(wsheet.get_Range("F" + i, System.Reflection.Missing.Value).Text.ToString());
              _item.actionList = wsheet.get_Range("G" + i, System.Reflection.Missing.Value).Text.ToString();
              _item.delay = Convert.ToInt32(wsheet.get_Range("H" + i, System.Reflection.Missing.Value).Text.ToString());
              _item.playCount = Convert.ToInt32(wsheet.get_Range("I" + i, System.Reflection.Missing.Value).Text.ToString());
              ItemManagement.Add(_item);
            }

          }
          catch (Exception)
          {
            _item = null;
          }
        }
      }
    }

    public void writeSheet()
    {
      _workbook = _workbooks.Add(true);
      _sheets = _workbook.Worksheets;

      foreach (childClassItem item in Form1.Self.childClass)
      {
        _workSheet = (Worksheet)_sheets.Add(m_objOpt, m_objOpt, m_objOpt, m_objOpt);
        _workSheet.Select(Type.Missing);
        _workSheet.Name = item.flag;

        int cols = 1;
        int row = 3;
        _workSheet.Cells[1, cols++] = "编号";
        _workSheet.Cells[1, cols++] = "动画名";

        SortedList<string, ItemBase> _list = ItemManagement.GetTable(item.mark);

        switch (item.mark)
        {
          case ItemType.ItemC:
            _workSheet.Cells[1, cols++] = "职业";
            //_workSheet.Cells[2, cols] = "职业";
            _workSheet.Cells[1, cols++] = "性别";
            //_workSheet.Cells[2, cols] = "性别";
            _workSheet.Cells[1, cols++] = "方向";
            //_workSheet.Cells[2, cols] = "方向";
            _workSheet.Cells[1, cols++] = "动作";
            //_workSheet.Cells[2, cols] = "动作";
            row = 3;

            foreach (ItemC _item in _list.Values)
            {
              _workSheet.Cells[row, 1] = _item.id;
              _workSheet.Cells[row, 2] = _item.name;
              _workSheet.Cells[row, 3] = _item.gender;
              _workSheet.Cells[row, 4] = _item.job;
              _workSheet.Cells[row, 5] = _item.dir;
              _workSheet.Cells[row, 6] = _item.action;
              _workSheet.Cells[row, 7] = _item.actionList;
              _workSheet.Cells[row, 8] = _item.delay;
              _workSheet.Cells[row, 9] = _item.playCount;

              row++;
            }
            break;
         default:
break;
        }

        _workSheet.Cells[1, cols++] = "图片";
        _workSheet.Cells[1, cols++] = "播放间隔";
        _workSheet.Cells[1, cols++] = "播放次数";
      }
      _workSheet = (_Worksheet)_sheets.get_Item(_sheets.Count);
      _workSheet.Delete();
      _workSheet = null;
    }
    public bool saveSheet(string file)
    {
      try
      {
        _app.ActiveWorkbook.SaveAs(file, Excel.XlFileFormat.xlExcel7
            , m_objOpt, m_objOpt, m_objOpt, m_objOpt,
            Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);
        //System.Diagnostics.Process.Start("explorer.exe", Application.StartupPath.ToString());//打开目录
        return true;
      }
      catch (System.Exception e)
      {
        MessageBox.Show(e.Message);
      }

      return false;
    }
  }
}
--------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 插入一行或一列: ExcelApp.ActiveSheet.Rows[2].Insert;
参考
http://www.cnblogs.com/litianfei/archive/2008/03/21/1116906.html
--------------------编程问答-------------------- 不知道怎么添加列!!!只添加过行!!帮顶 --------------------编程问答--------------------     helper.workSheet.Columns[1].Insert
根本就没这个方法嘛 --------------------编程问答-------------------- 嘿嘿 --------------------编程问答-------------------- 自己再顶一下
没人会吗 --------------------编程问答-------------------- #region 导出到excel
    /// <summary>
    /// 导出到excel
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnExportExcel_Click(object sender, EventArgs e)
    {
        try
        {
            System.Data.DataTable dt = dtSource;
            string TemplatePath = Server.MapPath(@"Template\Third.xls");
            string ExportPath = Server.MapPath("") + @"\ExportReports";

            if (!Directory.Exists(ExportPath))
            {
                Directory.CreateDirectory(ExportPath);
            }

            Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();

            if (app == null)
            {
                return;
            }
            app.Visible = false;
            app.UserControl = true;

            Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;
            Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(TemplatePath);
            Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Worksheets;
            Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1);

            if (worksheet == null)
            {
                return;
            }

            int i = 1;

            for (; i <= dt.Rows.Count; i++)
            {
                int j = 0;
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["Month"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["PatientTypeName"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["OutCount"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["BedDayCount"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["AverageDay"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["TotalCharge"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["BedCharge"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["MedicineCharge"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["CureCharge"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["CheckUpCharge"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["VerifyCharge"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["PerAverageCharge"].ToString().Trim();
                worksheet.Cells[i + 2, ++j] = dt.Rows[i - 1]["DayAverageCharge"].ToString().Trim();
            }

            string str = DateTime.Now.ToString("yyyyMMddHHmmss");
            string strExportPath = ExportPath + @"\" + str + ".xls";

            workbook.SaveAs(strExportPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

            app.Quit();

            app = null;

            Response.Redirect("DownLoad.aspx?Path=" + strExportPath, false);
        }
        catch
        {
            Response.Write("<script>alert('导出失败!!')</script>");
            return;
        }
    }
    #endregion


我写的一个写入excel方法,你改下用吧
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,