C#第三次作业:Excel数据读取 及 HTML文件初步

来源:互联网 发布:淘宝实时访客 编辑:程序博客网 时间:2024/04/30 01:57
第一部分:作业要求(完整要求见作业要求) 
目标2:C#读取Excel文件,并保存成HTML格式(90分)。


第二部分:程序说明及代码 
生成HTML文件程序excelToHtml 
1.功能: 
1.1窗体有2个控件(dataGridView,按钮); 
1.2当按下按钮时候,程序出现打开“打开文件”对话框,可以打开.xls和.xlsx文件,本例是打开D盘的ex03_demo.xls文件; 
1.3程序把ex03_demo.xls文件的内容读取出来并显示在dataGridView控件中; 
1.4程序最后会根据ex03_demo.xls文件内容,把“姓名”和“作业网址”,转换为HTML识别的链接形式,相应的HTML文件名为 ex03_demo.html; 
1.5打开该html文件,能链接每个同学的网址。


三、代码实现


using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;using System.Data.OleDb; using System.IO;namespace ReadandWrite { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e)    {    }    public DataSet ExcelToDS(string path)    {//建立连接参数        string strConn =//“Provider = value”子句是必需的;            "Provider=Microsoft.Jet.OLEDB.4.0;"     //Data Source 是数据路径,注意path前有@;            + "Data Source=" + @path + ";"//Extended Properties为扩展属性,有HDR和IMEX两个参数,            + "Extended Properties=Excel 8.0;";//new oleDbConnection("Provider=value;Data Source=path;")/*步骤:1、连接数据库:OleDbConnection conn 2、打开数据裤:conn.open()3、利用OleDbDataAdapter类的构建方法获取数据库中的数据*/        OleDbConnection conn = new OleDbConnection(strConn);        conn.Open();        string strExcel = "";strExcel = "select * from [sheet1$]";//表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源        OleDbDataAdapter myCommand = null;myCommand = new OleDbDataAdapter(strExcel, strConn);        //DataSet 和 DataTable的区别DataSet ds = null;            DataTable table1 = new DataTable();        ds = new DataSet();//数据填充        myCommand.Fill(table1);        myCommand.Fill(ds);        dataGridView1.DataSource = table1;        return ds;    }    private void button1_Click(object sender, EventArgs e)    {        OpenFileDialog openfile = new OpenFileDialog();        openfile.Filter = "工作薄(*.xls)|*.xls|所有文件(*.*)|*.*|工作薄(*.xlsx)|*.xlsx";        if (openfile.FilterIndex == 1 && openfile.ShowDialog() == DialogResult.OK)        {            DataSet dataSet = ExcelToDS(openfile.FileName);            String name = "";            int count = 0;            using (StreamWriter sw = new StreamWriter("D:/homework.html", false, Encoding.Default))            { sw.WriteLine("<html>"); sw.WriteLine("<body>");                foreach (DataTable table in dataSet.Tables)                {                    foreach (DataRow row in table.Rows)                    {                        foreach (DataColumn column in table.Columns)                        {                            //Console.WriteLine(row[column]);                            if (column.ColumnName == "姓名")                            {                                name = row[column].ToString();                            }                            if (column.ColumnName == "作业网址")                            {//将文件导出至html文件中//html文件超链接为<a href="url">文件名<a/>                                sw.WriteLine("<a href=\""+row[column].ToString()+" \"> "+name+"<a/>";");                            }                        }                    }                }sw.WriteLine("</body>");                sw.WriteLine("</html>");            }                    }    }}}


1、初始界面


2、打开界面


3、功能实现



4、文件生成


5、html文件


五、实验心得
本次实验让我学会了数据库的连接,一开始不懂就不断地百度,其中遇到两个问题,第一、连接数据库的方法并不只有这一种,还有其他的方式,我认真比对过另外的两种连接办法,相比之下,我所运用的方法适合于大量的数据,但效率并不高,因此在连接数据库的处理上并没有被广泛的使用,这里有其他相关的<a href="http://blog.sina.com.cn/s/blog_3e8011bf0101emk2.html">连接方式<a/>,第二个问题,在连接数据库所提供的方法,其实oleDbConnection的构建方法不仅仅上述的三个参数,还有其他的参数限制,我花了比较多的时间对参数理解和使用上,对连接数据库有了新的想法和思路。


0 0
原创粉丝点击