c# DataGridView导出到Excel,如果数据列数很多,格式就会乱

longshujun 2013-05-28 10:55:04
c# DataGridView导出到Excel,如果数据列数很多,格式就会乱

#region 导出成Excel
/// <summary>

/// 另存新档按钮

/// </summary>

public static void SaveAsExcel(DataGridView dg) //另存新档按钮 导出成Excel
{

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Filter = "Execl files (*.xls)|*.xls";

saveFileDialog.FilterIndex = 0;

saveFileDialog.RestoreDirectory = true;

saveFileDialog.CreatePrompt = true;

saveFileDialog.Title = "Export Excel File To";

saveFileDialog.ShowDialog();

Stream myStream;

myStream = saveFileDialog.OpenFile();

//StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));

StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));

string str = "";

try
{
//写标题
for (int i = 0; i < dg.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += dg.Columns[i].HeaderText;
}
sw.WriteLine(str);

//写内容
for (int j = 0; j < dg.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < dg.Columns.Count; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += dg.Rows[j].Cells[k].Value.ToString();
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
}
catch (Exception e)
{
MessageBox.Show(e.GetBaseException().ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}
#endregion
...全文
185 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
行侠者 2013-07-31
  • 打赏
  • 举报
回复
我之前做过导出Excel的,还可以导出图形到Excel内 http://download.csdn.net/detail/jx_521/5819725 我是用aspose.cells.dll做的,看看能否帮助你。
bdmh 2013-05-28
  • 打赏
  • 举报
回复
懒得看,你还是看看从哪列开始乱,然后调试程序吧
游戏人间 2013-05-28
  • 打赏
  • 举报
回复
把列值用双引号引起来看看。 你得看看csv的规范。
人生导师 2013-05-28
  • 打赏
  • 举报
回复
参考下面的博客:http://www.cnblogs.com/ruinet/archive/2007/04/23/723568.html 还有你再使用别人代码之前最好自己先理解了之后才使用,不然出现了问题完全不知道如何解决,而不是自己放到论坛中直接获得答案了,你最好自己调试下,之后下次出现类似的问题才能解决,如果你一遇到问题就放到论坛中希望别人给你完全解决掉,然后就不管,下次遇到了还是不会,所以我对你的意见是——首先要自己先调试下,论坛中只能给你思路或者一些示例代码,主要还要靠自己消化

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧