zoukankan      html  css  js  c++  java
  • Excel1

    C#导入,导出Excel 数据

    新建一张数据表producttable

    web服务器端代码

    [WebMethod]

        public DataSet ExportProduct()

        {

            try{

            //数据库连接字符串

                string con = @"Data Source=TALENT;Initial Catalog=MyDb;Integrated Security=True";

            SqlConnection scon = new SqlConnection(con);

            //打开数据库连接

            scon.Open();

            //数据库访问指令SQL

            string select = "select * from producttable";

            SqlDataAdapter sda = new SqlDataAdapter(select, scon);

            //数据缓冲集

            DataSet ds = new DataSet();

            //读取数据并填充到缓冲区

            sda.Fill(ds, "product");

            scon.Close();

            //返回缓冲区中的数据

            return ds;

            }

            catch(Exception ex)

            {     

                return null;

            }

        }

    新建另一个项目,添加web引用

     

    要使用Excel,需加的命名空间

     

    using Microsoft.Office.Interop.Excel;

    using System.Reflection;

    using System.IO;

     

     

     

     

     

    需添加引用

     

     

     

    新建个窗体

     

     

     

    三个按钮单击事件的代码

     

    DataSet ds = new DataSet();

     

    第一个按钮功能,从web服务器端返回的DataSet数据,绑定到dataGridView控件上显示

    private void button1_Click(object sender, EventArgs e)

            {

                try

                {

                    myService1.Service service = new ExportExcel.myService1.Service();

                

                    ds = service.ExportProduct();

                    if (ds != null)

                    {

                        dataGridView1.DataSource = ds.Tables[0];

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

            }

    第二个按钮功能,把DataSet数据导出到Excel表单中

            private void button2_Click(object sender, EventArgs e)

            {

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

                Microsoft.Office.Interop.Excel.Workbook workbook;

                Microsoft.Office.Interop.Excel.Worksheet worksheet;

     

                excel.Visible = true;

     

                workbook = excel.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);

                worksheet = (Worksheet)workbook.Worksheets[1];

     

                if (ds.Tables[0].Rows.Count > 0)

                {

                    for(int j=0;j<ds.Tables[0].Rows.Count;j++)

                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)

                        {

                            worksheet.Cells[j + 1, i + 1] = ds.Tables[0].Rows[j][i].ToString();

                        }

                }

            }

    第三个按钮功能,从Excel表单导入数据到dataGridView控件上显示

            private void button3_Click(object sender, EventArgs e)

            {

                OpenFileDialog ofd = new OpenFileDialog();

                ofd.Filter = "Excel Files|*.xlsx";

     

                if (ofd.ShowDialog() == DialogResult.OK)

                {

                    string filename = ofd.FileName;

     

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

     

                    Microsoft.Office.Interop.Excel.Workbook workbook;

                    Microsoft.Office.Interop.Excel.Worksheet worksheet;

     

                    object oMissing = System.Reflection.Missing.Value;

     

                    workbook = excel.Workbooks.Open(filename, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

     

                    worksheet = (Worksheet)workbook.Worksheets[1];

     

                    int rowCount = worksheet.UsedRange.Rows.Count;

                    int colCount = worksheet.UsedRange.Columns.Count;

     

                    Microsoft.Office.Interop.Excel.Range range1;

     

                    System.Data.DataTable dt = new System.Data.DataTable();

     

                    for (int i = 0; i < colCount; i++)

                    {

                        range1 = worksheet.get_Range(worksheet.Cells[1, i + 1], worksheet.Cells[1, i + 1]);

                        dt.Columns.Add(range1.Value2.ToString());

                    }

                    for (int j = 1; j < rowCount; j++)

                    {

                        DataRow dr = dt.NewRow();

                        for (int i = 0; i < colCount; i++)

                        {

                            range1 = worksheet.get_Range(worksheet.Cells[j + 1, i + 1], worksheet.Cells[j + 1, i + 1]);

                            dr[i] = range1.Value2.ToString();

                        }

     

                        dt.Rows.Add(dr);

                    }

     

                    dataGridView1.DataSource = dt;

                    excel.Quit();

                }

            }

  • 相关阅读:
    代码命名,代码里的命名规则:错误的和正确的对比 命名方法总结 “自我描述的源代码”用代码表达出你的思想,让其他人通过代码能明白你的意图。
    201508整理:前端工程师的(现在主要的问题、工作选择、技术前景未来)
    java小程序,用java在指定目录或以及子目录中找出同名文件,java File过滤文件名后找同名文件
    excel中的数据粘贴不全到plsql中,excel 粘贴后空白,Excel复制粘贴内容不全
    漫画的由来,卡通漫画、暴走漫画、先锋漫画、漫画与前卫艺术之间的边缘艺术形式、实用漫画、讽刺漫画、幽默漫画的定义
    人性漫画:一个人成功前和成功后赤裸裸的区别 人成功前后对比 成功人发展由来前后结果
    解决IE弹框提示“是否停止运行此脚本”问题
    用UltraEdit判断打开文件的编码类型 用UltraEdit或notepad记事本查看文件编码格式 用UltraEdit查看当前文件编码
    Oracle pl/sql导入sql文件,插入更新数据,中文乱码问题解决方案
    毕胜自述:我是如何把奢侈品打到白菜价的 制造业的电子商务中国零售 小米启示录
  • 原文地址:https://www.cnblogs.com/daiweixm/p/1846080.html
Copyright © 2011-2022 走看看