C# 如何将datagridview中的数据导入txt文件中,并使文本按datagridview列对齐?
3个回答
展开全部
private void btnDataGirdView_Click(object sender,EventArgs e) //添加数据
{
dataGridView1.Columns.Add("a","标题1");
dataGridView1.Columns.Add("b","标题2");
dataGridView1.Columns.Add("c","标题3");
string[] dr1= { "1","22","3333" };
string[] dr2= { "4444","55","6" };
DataGridViewRow Row=new DataGridViewRow();
int index=dataGridView1.Rows.Add(Row);
dataGridView1.Rows[index].Cells[0].Value=dr1[0].ToString();
dataGridView1.Rows[index].Cells[1].Value=dr1[1].ToString();
dataGridView1.Rows[index].Cells[2].Value=dr1[2].ToString();
DataGridViewRow Row2=new DataGridViewRow();
int index2=dataGridView1.Rows.Add(Row2);
dataGridView1.Rows[index2].Cells[0].Value=dr2[0];
dataGridView1.Rows[index2].Cells[1].Value=dr2[1];
dataGridView1.Rows[index2].Cells[2].Value=dr2[2];
}
private void btnOutPutText_Click(object sender,EventArgs e)//导出Text
{
string FullFileName=@"D:\aaa.txt";
// FileStream fs=new FileStream(FullFileName,FileMode.CreateNew);
StreamWriter sw=new StreamWriter(FullFileName,true,Encoding.Default);
string str="";
for(int i=0;i<dataGridView1.Rows.Count-1;i++)
{
for(int j=0;j<dataGridView1.Columns.Count;j++)
{
str=dataGridView1.Rows[i].Cells[j].Value.ToString().Trim();
if(str.Length<10)
str=str.PadRight(10,' '); //不够长度的,补齐空格!
sw.Write(str);
}
sw.WriteLine("");
}
sw.Close();
}
{
dataGridView1.Columns.Add("a","标题1");
dataGridView1.Columns.Add("b","标题2");
dataGridView1.Columns.Add("c","标题3");
string[] dr1= { "1","22","3333" };
string[] dr2= { "4444","55","6" };
DataGridViewRow Row=new DataGridViewRow();
int index=dataGridView1.Rows.Add(Row);
dataGridView1.Rows[index].Cells[0].Value=dr1[0].ToString();
dataGridView1.Rows[index].Cells[1].Value=dr1[1].ToString();
dataGridView1.Rows[index].Cells[2].Value=dr1[2].ToString();
DataGridViewRow Row2=new DataGridViewRow();
int index2=dataGridView1.Rows.Add(Row2);
dataGridView1.Rows[index2].Cells[0].Value=dr2[0];
dataGridView1.Rows[index2].Cells[1].Value=dr2[1];
dataGridView1.Rows[index2].Cells[2].Value=dr2[2];
}
private void btnOutPutText_Click(object sender,EventArgs e)//导出Text
{
string FullFileName=@"D:\aaa.txt";
// FileStream fs=new FileStream(FullFileName,FileMode.CreateNew);
StreamWriter sw=new StreamWriter(FullFileName,true,Encoding.Default);
string str="";
for(int i=0;i<dataGridView1.Rows.Count-1;i++)
{
for(int j=0;j<dataGridView1.Columns.Count;j++)
{
str=dataGridView1.Rows[i].Cells[j].Value.ToString().Trim();
if(str.Length<10)
str=str.PadRight(10,' '); //不够长度的,补齐空格!
sw.Write(str);
}
sw.WriteLine("");
}
sw.Close();
}
更多追问追答
追答
代码都给你了,我这里正常!!
关键是这句:
str=str.PadRight(10,' '); //不够长度的,补齐空格!
有的错写成了10-str.Length,你的检查下;
还不可以的贴你的代码给我;
展开全部
为什么要这样?直接汇出到Execl不是很整齐。。。
如果一定要这样的话,可以把datagridview的数据源按照DataTable对象取出来,然后使用循环遍历DataTable的每一行、每一列,输出每一个单元格的值。其中,每个单元格输出的文本长度设定为该单元格对应的datagridview中那一列的宽度,单元格内容不足设定的长度时,以空字符代替,这样就能保证文本的整齐了。然后一行一行写到txt中,应该能实现你要的效果。
具体怎么写出到txt就不提了。
如果一定要这样的话,可以把datagridview的数据源按照DataTable对象取出来,然后使用循环遍历DataTable的每一行、每一列,输出每一个单元格的值。其中,每个单元格输出的文本长度设定为该单元格对应的datagridview中那一列的宽度,单元格内容不足设定的长度时,以空字符代替,这样就能保证文本的整齐了。然后一行一行写到txt中,应该能实现你要的效果。
具体怎么写出到txt就不提了。
追问
因为必须是txt啊…我技术很渣,虽然能听懂您说的,不过很难写出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
FileStream fs = new FileStream(@"d:\abc.txt" , FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
//开始循环表格的内容
for(int i=0;i<drv.rows.count();i++)
{
m_streamWriter.WriteLine("drv[0,i]");
m_streamWriter.WriteLine("drv[n,i]");
m_streamWriter.WriteLine("\n");
}
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
//开始循环表格的内容
for(int i=0;i<drv.rows.count();i++)
{
m_streamWriter.WriteLine("drv[0,i]");
m_streamWriter.WriteLine("drv[n,i]");
m_streamWriter.WriteLine("\n");
}
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |