面代码演示了如何将ListView中的数据导出到Excel的方法,例子代码中还包括了一些编程中的其它小方法,比如:
1)文件的拷贝复制方法
2)文件属性的修改
3)ListView控件Columns的遍历
4)ListView控件Items的遍历
5)foreach语句的使用
6)SaveFileDialog的使用
public
void
DealExcelOut()
{
Stringpath = Application.StartupPath;
Stringpath1 = path + " /tmp.xls " ;
Stringpath2 = path + " /tmp2.xls " ;
File.Copy(path1,path2, true );
File.SetAttributes(path2,FileAttributes.Normal);
Stringstrconn = " Provider=Microsoft.jet.OLEDB.4.0;DataSource= " + path2 + " ;ExtendedProperties=Excel8.0 " ;
OleDbConnectioncn = new OleDbConnection(strconn);
OleDbCommandcmd = new OleDbCommand();
Stringcmdstr;
// 根据ListView创建VPN表
try
{
cn.Open();
cmd.Connection = cn;
cmdstr = " CreateTableVPN( " ;
foreach (ColumnHeaderch in listView_Main.Columns)
{
cmdstr += ch.Text + " TEXT, " ;
}
cmdstr = cmdstr.Remove(cmdstr.Length - 1 );
cmdstr += " ) " ;
cmd.CommandText = cmdstr;
cmd.ExecuteNonQuery();
}
catch (Exception)
{
MessageBox.Show( " 读取Excel模板文件错误! " );
}
// 导出数据
try
{
long cols = listView_Main.Columns.Count;
foreach (ListViewItemlvi in listView_Main.Items)
{
cmdstr = " InsertIntoVPNValues( " ;
for ( long i = 0 ;i < cols;i ++ )
cmdstr += " ' " + lvi.SubItems[(Int32)i].Text + " ', " ;
cmdstr = cmdstr.Remove(cmdstr.Length - 1 );
cmdstr += " ) " ;
cmd.CommandText = cmdstr;
cmd.ExecuteNonQuery();
}
cn.Close();
// 显示FileSave对话框,复制临时文件到指定文件
DialogResultr = saveFileDialog_Excel.ShowDialog();
if (r == DialogResult.OK)
{
File.Copy(path2,saveFileDialog_Excel.FileName, true );
}
File.Delete(path2);
}
catch (Exception)
{
MessageBox.Show( " 访问Excel文件错误! " );
}
}
{
Stringpath = Application.StartupPath;
Stringpath1 = path + " /tmp.xls " ;
Stringpath2 = path + " /tmp2.xls " ;
File.Copy(path1,path2, true );
File.SetAttributes(path2,FileAttributes.Normal);
Stringstrconn = " Provider=Microsoft.jet.OLEDB.4.0;DataSource= " + path2 + " ;ExtendedProperties=Excel8.0 " ;
OleDbConnectioncn = new OleDbConnection(strconn);
OleDbCommandcmd = new OleDbCommand();
Stringcmdstr;
// 根据ListView创建VPN表
try
{
cn.Open();
cmd.Connection = cn;
cmdstr = " CreateTableVPN( " ;
foreach (ColumnHeaderch in listView_Main.Columns)
{
cmdstr += ch.Text + " TEXT, " ;
}
cmdstr = cmdstr.Remove(cmdstr.Length - 1 );
cmdstr += " ) " ;
cmd.CommandText = cmdstr;
cmd.ExecuteNonQuery();
}
catch (Exception)
{
MessageBox.Show( " 读取Excel模板文件错误! " );
}
// 导出数据
try
{
long cols = listView_Main.Columns.Count;
foreach (ListViewItemlvi in listView_Main.Items)
{
cmdstr = " InsertIntoVPNValues( " ;
for ( long i = 0 ;i < cols;i ++ )
cmdstr += " ' " + lvi.SubItems[(Int32)i].Text + " ', " ;
cmdstr = cmdstr.Remove(cmdstr.Length - 1 );
cmdstr += " ) " ;
cmd.CommandText = cmdstr;
cmd.ExecuteNonQuery();
}
cn.Close();
// 显示FileSave对话框,复制临时文件到指定文件
DialogResultr = saveFileDialog_Excel.ShowDialog();
if (r == DialogResult.OK)
{
File.Copy(path2,saveFileDialog_Excel.FileName, true );
}
File.Delete(path2);
}
catch (Exception)
{
MessageBox.Show( " 访问Excel文件错误! " );
}
}