一、【作业要求】
1. 读取ex03_demo.xls文件中的“ 姓名”和“作业网址”,保存到文本文件中(文件名:ex03_demo.txt)。
1. 读取ex03_demo.xls文件中的“ 姓名”和“作业网址”,保存到文本文件中(文件名:ex03_demo.txt)。
2. 把“姓名”和“作业网址”,转换为HTML识别的链接形式,相应的HTML文件名为 ex03_demo.html。
HTML文件的格式可以查看网络资料
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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//读取EXCLE数据
public DataSet ExcelToDS(string path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @path + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter myCommand = null;
myCommand = new OleDbDataAdapter(strExcel, strConn);
DataSet ds = null;
ds = new DataSet();
DataTable table1 = new DataTable();
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|所有文件(*.*)|*.*";
if (openfile.FilterIndex == 1 && openfile.ShowDialog() == DialogResult.OK)
{
ExcelToDS(openfile.FileName);
}
//写入文件
using (StreamWriter sw = new StreamWriter("d:/1.html", false, Encoding.Default))
{
int i = 0;
sw.WriteLine("<html><body>");
foreach (DataTable table in ExcelToDS(openfile.FileName).Tables)
{
foreach (DataRow row in table.Rows)
{
foreach (DataColumn column in table.Columns)
{
if (column.ColumnName == "作业网址")
{
sw.Write("<a href=\"" + row[column] + "\">");
}
if (column.ColumnName == "姓名")
{
sw.Write(row[column] + "</a>");
sw.Write(" ");
}
i++;
if (i % 5 == 0)
{
// sw.Write("<br>");
}
}
}
}
sw.WriteLine("</html></body>");
}
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
}
}
三、程序截图:
四、心得与体会
在本次作业的完成过程中,虽然说之前做过类似的读取文件,可这是读取的是EXCEL文件。受到最大的启发还是上课时老师对这次作业的一些思路,以及部分函数的使用技巧的讲解。在本次作业中,收获有:
1、加深对文件流StreamRead和StreamWrite的了解,其实有个模板,所以经过这次后把这个模板背下来。
2、对dataGridView这个控件开始初步了解。
3、对DataSet内存中的数据库以及他的跟新开始了解。
4、对HTML的文件格式及其作用初步了解。
5、为学习C#连接数据库打下基础。
总之,最大的收获还是明白了拿到一个问题的时候,先把问题分为若干个小模块,再整理思路,逐个解决。