C# 如何将datagridview中的数据导入txt文件中,并使文本按datagridview列对齐?

 我来答
xtfnpgy
2014-10-06 · TA获得超过1784个赞
知道大有可为答主
回答量:1989
采纳率:76%
帮助的人:1094万
展开全部
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();
}
更多追问追答
追问

失败了…

追答
代码都给你了,我这里正常!!
关键是这句:
str=str.PadRight(10,' '); //不够长度的,补齐空格!

有的错写成了10-str.Length,你的检查下;
还不可以的贴你的代码给我;
孤灯江湖
2014-10-06 · TA获得超过281个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:160万
展开全部
为什么要这样?直接汇出到Execl不是很整齐。。。
如果一定要这样的话,可以把datagridview的数据源按照DataTable对象取出来,然后使用循环遍历DataTable的每一行、每一列,输出每一个单元格的值。其中,每个单元格输出的文本长度设定为该单元格对应的datagridview中那一列的宽度,单元格内容不足设定的长度时,以空字符代替,这样就能保证文本的整齐了。然后一行一行写到txt中,应该能实现你要的效果。
具体怎么写出到txt就不提了。
追问
因为必须是txt啊…我技术很渣,虽然能听懂您说的,不过很难写出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiangjuan314
2016-01-15 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2837万
展开全部
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();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式