//读取一个本地的Excel文件并导出到文本文档中
private void button2_Click(object sender, EventArgs e)
{
//输入的要导出的前N条数据
int inputnum = 0;
string strnum = this.textBox2.Text;
int.TryParse(strnum, out inputnum);
//Excel 中的数据集
DataSet ds = null;
//数据表
DataTable dt = new DataTable();
//连接字符串
string strCon = string.Empty;
//文件所在路径
string strFilePath = this.textBox1.Text;
if (strFilePath=="")
{
MessageBox.Show("请选择一个Excel文件!");
return;
}
//后缀名
string strExt = strFilePath.Substring(strFilePath.LastIndexOf(".") + 1).ToLower();
//判断文件后缀名
if (strExt == "xls")// 2003格式
{
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Extended Properties='Excel 8.0;IMEX=1';Persist Security Info=True";
}
else if (strExt == "xlsx") //2007或以上格式
{
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strFilePath + ";Extended Properties='Excel 12.0;IMEX=1';Persist Security Info=True";
}
else
{
MessageBox.Show("所选择文件非Excel文件,请重新选择!");
return;
}
//Excel 连接实例化
System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strCon);
try
{
//打开Excel的连接
Conn.Open();
//查询SQL语句 默认查询第一个工作表(默认总共三个)
string strCom = "SELECT * FROM [Sheet1$]";
if (inputnum != 0)
{
strCom = "SELECT top " + inputnum + " * FROM [Sheet1$]";
}
//执行查询
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn);
ds = new DataSet();
//将查询到的数据填充到DataSet中,并设置表名为第一个表单的名称“[Sheet1$]”
myCommand.Fill(ds, "[Sheet1$]");
dt = ds.Tables[0];
//要写入文件的路径
string txtfilename = "C:\\ExcelData.txt";
//写入文件
System.IO.File.Delete(txtfilename);
System.IO.StreamWriter w = System.IO.File.AppendText(txtfilename);
w.WriteLine("学号\t\t姓名\t性别\t语文\t高数\t物理\t普化\t马克思");
w.WriteLine("\r\n");
if (dt != null && dt.Rows.Count > 0)
{
//逐行写入txt
for (int i = 0; i < dt.Rows.Count; i++)
{
w.WriteLine(dt.Rows[i][0] + "\t" + dt.Rows[i][1] + "\t" + dt.Rows[i][2] + "\t" + dt.Rows[i][3] + "\t" + dt.Rows[i][4] + "\t" + dt.Rows[i][5] + "\t" + dt.Rows[i][6] + "\t" + dt.Rows[i][7] + "\t");
}
}
w.Flush();
w.Close();
//打开导出的Text文本文档
System.Diagnostics.Process.Start(txtfilename);
}
catch (Exception ex)
{
//如果出现异常则显示异常信息。
MessageBox.Show(ex.Message);
}
finally
{
//关闭Excel的链接
Conn.Close();
}
}