原創|其它|編輯:郝浩|2011-04-08 15:47:38.000|閱讀 1337 次
概述:DevExpress.XtraGrid.GridControl有多個ExportToXXX的方法,提供多種格式的導出,極大節省了人力。如果 數據集里面有bool的數據,Grid就會顯示成checkbox的形式,導出成pdf、excel當然是沒有問題。但導出txt和csv格式時,對應 bool字段的值就會空白,沒有任何數據導出。這個bug可以在XtraGrid的demo里面看到。導出數據空白的問題在官方資料中目前沒有找到資料, 只好自己做了。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
DevExpress.XtraGrid.GridControl有多個ExportToXXX的方法,提供多種格式的導出,極大節省了人力。如果 數據集里面有bool的數據,Grid就會顯示成checkbox的形式,導出成pdf、excel當然是沒有問題。但導出txt和csv格式時,對應 bool字段的值就會空白,沒有任何數據導出。這個bug可以在XtraGrid的demo里面看到。導出數據空白的問題在官方資料中目前沒有找到資料, 只好自己做了。
以下是導出txt的代碼,csv也是稍加修改即可實現。
private void ExportGridToTxt(GridView view, string path, char spliter)
{
if (view != null)
{
StreamWriter sw = null;
try
{
sw = new StreamWriter(path, false, Encoding.Default);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < view.Columns.Count; i++)
{
sb.Append(view.Columns[i].Caption + spliter);
}
sb.AppendLine();
for (int i = 0; i < view.RowCount; i++)
{
DataRow dr = view.GetDataRow(i);
for (int j = 0; j < view.Columns.Count; j++)
{
GridColumn col = view.Columns[j];
if (col.ColumnType == typeof(bool))
{
bool val = (bool)(view.GetRowCellValue(i, col));
sb.Append((bool)val ? "Y" : "N");
}
else
{
string displayText = view.GetRowCellDisplayText(i, col);
sb.Append(displayText);
}
if (j != view.Columns.Count - 1)
{
sb.Append(spliter);
}
else
{
sb.AppendLine();
}
}
}
sw.Write(sb.ToString());
sw.Flush();
}
finally
{
if (sw != null)
{
sw.Close();
}
}
}
}
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:Byeah's Blog