winform 怎么提高数据导出到execl的速度
用下面这个写速度还可以,我安装的就是excel2007的,用这个方式的话当保存格式为.xlsx之后,无法打开,请问高手导出到excel导出速度快,格式正确要怎么做
private void print(DevExpress.XtraGrid.Views.Grid.GridView gridView1)
{
if (gridView1.DataRowCount == 0)
{
MessageBox.Show("没有数据可供导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.DefaultExt = "xlsx";
dlg.Filter = "Excel2007文件(*.xlsx)|*.xlsx|Excel file(*.xls)|*.xls";
dlg.CheckFileExists = false;
dlg.CheckPathExists = false;
dlg.FilterIndex = 0;
dlg.RestoreDirectory = true;
dlg.CreatePrompt = true;
dlg.Title = "保存为excel文件";
if (dlg.ShowDialog() == DialogResult.OK)
{
Stream stream;
stream = dlg.OpenFile();
StreamWriter sw = new StreamWriter(stream, System.Text.Encoding.GetEncoding(-0));
string columnTitle = "";
try
{
for (int i = 0; i < gridView1.Columns.Count - 4; i++)
{
if (i > 0)
{
columnTitle += "\t";
}
columnTitle += gridView1.Columns[i].Caption;
}
sw.WriteLine(columnTitle);
for (int j = 0; j < gridView1.DataRowCount; j++)
{
string columnValue = "";
for (int k = 0; k < gridView1.Columns.Count - 4; k++)
{
if (k > 0)
{
columnValue += "\t";
}
if (gridView1.GetDataRow(j)[k].Equals(" "))
columnValue += " ";
else
columnValue += gridView1.GetDataRow(j)[k].ToString().Replace("\r\n", " ");
}
sw.WriteLine(columnValue);
}
sw.Close();
stream.Close();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
sw.Close();
stream.Close();
}
}