用到的库文件
System.IO;
项目
录音系统V3.0
说明
导出格式为txt或CSV,好处再于不用装office,还可以正常导出数据.
不足
txt文档导入还没实现;
CSV格式有要求.否则导入不成功;
导入代码段(只能导入CSV第一表,第一行数据不导入,是标题.第一列,第二行开如导入,不能有多余的数据.介意做项目时,加个模板,减少出错概率)
private void btnImportAvoidCode_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialogCSV = new OpenFileDialog();
openFileDialogCSV.InitialDirectory = Application.ExecutablePath.ToString();
openFileDialogCSV.Filter = "EXCEL表格(*.csv)|*.csv";
openFileDialogCSV.FilterIndex = 1;
openFileDialogCSV.RestoreDirectory = true;
if (openFileDialogCSV.ShowDialog() == DialogResult.OK)
{
string txtFileToImport = openFileDialogCSV.FileName.ToString();
System.IO.FileInfo fi = new System.IO.FileInfo(txtFileToImport);
string dirCSV = fi.DirectoryName.ToString();
string FileNevCSV = fi.Name.ToString();
DataTable dt = new DataTable();
//导入数据
try
{
string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + dirCSV.Trim() + ";Extensions=asc,csv,tab,txt;Persist Security Info=False";
string sql_select;
OdbcConnection conn;
conn = new OdbcConnection(strConnString.Trim());
conn.Open();
sql_select = "select * from [" + FileNevCSV.Trim() + "]";
OdbcDataAdapter obj_oledb_da = new OdbcDataAdapter(sql_select, conn);
obj_oledb_da.Fill(dt);
conn.Close();
}
catch //(Exception ex)
{
FrmMsg frmMsgg = new FrmMsg("取数据失败!请参照录音系统目录下导入模板格式进行导入", 2, FrmMsg.MsgBtn.OK);
frmMsgg.ShowDialog();
frmMsgg.Dispose();
return;
}
//加载数据
try
{
for (int i = 0; i < dt.Rows.Count; i++)
{
bool isexist = false;
for (int j = 0; j < this.lvAvoidList.Items.Count; j++)
{
if (lvAvoidList.Items[j].SubItems[0].Text.ToString() == dt.Rows[i][0].ToString())
{
isexist = true;
break;
}
}
if (isexist == false)
{
ListViewItem lvItem = new ListViewItem();
lvItem.Tag = Convert.ToInt32(dt.Rows[i][0]).ToString().Trim();
lvItem.Text = Convert.ToInt32(dt.Rows[i][0]).ToString().Trim();
ListViewItem.ListViewSubItem lvSItemValid = new ListViewItem.ListViewSubItem();
int validTag = 0;
string strValid = "";
switch (dt.Rows[i][1].ToString())
{
case "1":
strValid = "启用";
validTag = 1;
break;
case "启用":
strValid = "启用";
validTag = 1;
break;
case "0":
strValid = "停用";
validTag = 0;
break;
case "停用":
strValid = "停用";
validTag = 0;
break;
default:
strValid = "启用";
validTag = 1;
break;
}
lvSItemValid.Tag = validTag;
lvSItemValid.Text = strValid;
lvItem.SubItems.Add(lvSItemValid);
lvAvoidList.Items.Add(lvItem);
avoid = true;
this.btnApply.Enabled = true;
this.btnDelAvoidCode.Enabled = true;
this.btnEnableAvoidCode.Enabled = true;
this.btndisableAvoidCode.Enabled = true;
this.btnExportAvoidCode.Enabled = true;
}
}
FrmMsg frmMsgg = new FrmMsg("数据导入成功!", 1, FrmMsg.MsgBtn.OK);
frmMsgg.ShowDialog();
frmMsgg.Dispose();
lvAvoidList.Refresh();
}
catch
{
FrmMsg frmMsgg = new FrmMsg("部分数据格式有误,请检查", 2, FrmMsg.MsgBtn.OK);
frmMsgg.ShowDialog();
frmMsgg.Dispose();
}
}
导出代码段
private void btnExportAvoidCode_Click(object sender, EventArgs e)
{
if (lvAvoidList.Items.Count == 0)
{
FrmMsg frmMsg = new FrmMsg("导出数据为空!", 2, FrmMsg.MsgBtn.OK);
frmMsg.ShowDialog();
frmMsg.Dispose();
return;
}
try
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.InitialDirectory = "c://";
sfd.Filter = "EXCEL表格(*.csv)|*.csv|文本文件(*.txt)|*.txt";
if (sfd.ShowDialog() == DialogResult.OK)
{
if (sfd.FileName.Substring(sfd.FileName.Length - 3) == "txt")
{
string[] lz = new string[lvAvoidList.Items.Count];
for (int j = 0; j < lvAvoidList.Items.Count; j++)
{
ListViewItem gi = lvAvoidList.Items[j];
for (int i = 0; i < gi.SubItems.Count; i++)
{
lz[j] += gi.SubItems[i].Text;
lz[j] += "/t";
}
lz[j] += "/n";
}
FileStream fs = new FileStream(sfd.FileName, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312"));
sw.Flush();
sw.BaseStream.Seek(0, SeekOrigin.Begin);
string ts = lvAvoidList.Columns[0].Text;
for (int k = 1; k < lvAvoidList.Columns.Count; k++)
{
ts += "/t" + lvAvoidList.Columns[k].Text;
}
sw.WriteLine(ts);
for (int i = 0; i < lvAvoidList.Items.Count; i++)
{
sw.WriteLine(lz[i]);
}
sw.Flush();
sw.Close();
}
else
{
FileStream fs = File.Open(sfd.FileName, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
sw.WriteLine("电话号码,状态");
for (int j = 0; j < lvAvoidList.Items.Count; j++)
{
ListViewItem gi = lvAvoidList.Items[j];
string itemValue = gi.SubItems[0].Text;
for (int i = 1; i < gi.SubItems.Count; i++)
{
itemValue += "," + gi.SubItems[i].Text;
}
sw.WriteLine(itemValue);
}
sw.Close();
sw.Dispose();
fs.Close();
fs.Dispose();
}
}
int actionType = 0;
string memo = "导出了免录号码记录";
Program.g_Global.m_logWrite.DBLog(actionType, memo);
}
catch (Exception ex)
{
FrmMsg frmMsg = new FrmMsg(ex.Message, 2, FrmMsg.MsgBtn.OK);
frmMsg.ShowDialog();
frmMsg.Dispose();
}
finally
{
GC.Collect();
}
}