大家好!
我用下面一段程序实现了将textBox中的内容保存到Excel中, if (saveexcel.ShowDialog() == DialogResult.OK)
            {                OleDbConnection conn = new OleDbConnection();                //连接时,D:\Test.xls (被连接的文件)不存在也没有关系,在创建表的时候会自动创建该文件
                conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
                saveexcel.FileName + ";Extended Properties='Excel 8.0;'";
                conn.Open();                OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = conn;                //创建表 Sheet1 ,有字段 name,city,country,address
                cmd.CommandText = "Create Table [Sheet1] (发动机基本指标 varchar(50),参数值 float);";
                cmd.ExecuteNonQuery();                //在表 Sheet1 中插入一条记录
                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('发动机额定功率效率(%)','" +
                    textBox2.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('发动机常用工况效率(%)','" +
                    textBox3.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('发动机当量功率(kw)','" +
                    textBox4.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('发动机额定功率密度(w/kg)','" +
                    textBox5.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('电堆峰值功率密度(w/kg)','" +
                    textBox6.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('氢气利用率(%)','" +
                    textBox7.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('发动机噪声(db)','" +
                    textBox8.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('额定功率热起动时间(s)','" +
                    textBox9.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('怠速冷起动时间(s)','" +
                    textBox10.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('怠速热起动时间(s)','" +
                    textBox11.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('10%PE到90%PE热态响应时间(s)','" +
                    textBox12.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('0%PE到50%PE热态响应时间(s)','" +
                    textBox13.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('发动机绝缘性(MΩ)','" +
                    textBox14.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                cmd.CommandText = "insert into [Sheet1] (发动机基本指标,参数值) VALUES ('发动机气密性(KPa)','" +
                    textBox15.Text.ToString() + "');";
                cmd.ExecuteNonQuery();                conn.Close();
}
可是问题是,保存的2列均为默认宽度,而我第一列的字段名很长,需要将第一列的宽度调长点,请问该插入怎样一段程序才能达到目的呢?或者能否用这么一个方法,我这里已经有了规定格式的Excel模板,
发动机性能指标   参数
指标1
指标2
指标3如何copy这个模板,并在参数下面填写对应值,然后另存呢?

解决方案 »

  1.   

    还要调整列宽啊,
    这样楼主要么引用excel然后进行Com编程
    要么用这个类库
      

  2.   

    直接在excel模板中拉宽,记得要保存哦。
      

  3.   

    恩,谢谢一楼的帮忙,能否用稍微简单点的方法呢?
    能否用这么一个方法,我这里已经有了规定格式的Excel模板,
    发动机性能指标 参数
    指标1
    指标2
    指标3能否copy这个模板,并在参数下面填写对应值,然后另存呢?
    这样麻烦吗?
      

  4.   

    public class ExportExcel
        {        public static void PrepareGridViewForExport(Control gv)
            {            LinkButton lb = new LinkButton();            Literal l = new Literal();            string name = String.Empty;            for (int i = 0; i < gv.Controls.Count; i++)
                {                if (gv.Controls[i].GetType() == typeof(LinkButton))
                    {                    l.Text = (gv.Controls[i] as LinkButton).Text;                    gv.Controls.Remove(gv.Controls[i]);                    gv.Controls.AddAt(i, l);                }                else if (gv.Controls[i].GetType() == typeof(DropDownList))
                    {                    l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;                    gv.Controls.Remove(gv.Controls[i]);                    gv.Controls.AddAt(i, l);                }                else if (gv.Controls[i].GetType() == typeof(CheckBox))
                    {                    l.Text = (gv.Controls[i] as CheckBox).Checked ? "True" : "False";                    gv.Controls.Remove(gv.Controls[i]);                    gv.Controls.AddAt(i, l);                }                if (gv.Controls[i].HasControls())
                    {                    PrepareGridViewForExport(gv.Controls[i]);                }            }
            }        public static void ExportGridView(GridView GridView1, string filename)
            {            string attachment = "attachment; filename=" + filename + ".xls";            HttpResponse Response = HttpContext.Current.Response;            Response.ClearContent();
                Response.Charset = "utf-8"; 
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                Response.AddHeader("content-disposition", attachment);            Response.ContentType = "application/ms-excel";            StringWriter sw = new StringWriter();            HtmlTextWriter htw = new HtmlTextWriter(sw);            HtmlForm frm = new HtmlForm();            GridView1.Parent.Controls.Add(frm);            frm.Attributes["runat"] = "server";            frm.Controls.Add(GridView1);
                frm.RenderControl(htw);            Response.Write(sw.ToString());            Response.End();
            }
        }    protected void Button1_Click(object sender, EventArgs e)
        {
            BindAllTeaInfo();
            this.GridView1.AllowPaging = false;
            this.GridView1.DataBind();
             ExportExcel.PrepareGridViewForExport(GridView1);
            ExportExcel.ExportGridView(GridView1, "周奖");    }
    这个是把gridview中的数据导入到excel中,希望对你有帮助