把dataGridView数据导出到excel.public static void ExportDataGridViewToExcel(DataGridView dataGridview1)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "导出Excel文件到"; saveFileDialog.ShowDialog(); Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
string str = "";
try
{
//写标题
for (int i = 0; i < dataGridview1.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += dataGridview1.Columns[i].HeaderText;
} sw.WriteLine(str);
//写内容
for (int j = 0; j < dataGridview1.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < dataGridview1.Columns.Count; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += dataGridview1.Rows[j].Cells[k].Value.ToString();
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}//引用
ExportDataGridViewToExcel(this.dataGridView1);
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "导出Excel文件到"; saveFileDialog.ShowDialog(); Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
string str = "";
try
{
//写标题
for (int i = 0; i < dataGridview1.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += dataGridview1.Columns[i].HeaderText;
} sw.WriteLine(str);
//写内容
for (int j = 0; j < dataGridview1.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < dataGridview1.Columns.Count; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += dataGridview1.Rows[j].Cells[k].Value.ToString();
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}//引用
ExportDataGridViewToExcel(this.dataGridView1);
解决方案 »
- 结构体封送字符串的问题
- WCF大量数据处理问题
- 怎样给二维数组的一整行来赋值呢?
- string转datime的方法
- 安装vs2005 _1986_RTL_x86_chs_VB_Compiler_Package.cab CRC文件损坏
- C#中如何通过SortedList获取文件的最后修改时间
- 如何在VC2005中将文本文件写入到数据集,并让他显示在界面DataGridView中显示文本文件中的数据
- 定义Label Label1,如果Label1是变量,怎么定义?
- 得分问题有十页了,散100分
- 关于MDI的问题
- 为什么在二级域名下的页面访问不到根目录下的ajax.dll?急~~!
- datagridview里怎样获取某列的列序号(索引号)
/// 以操作Excel控件的方式将DataTable数据导出到Excel
/// </summary>
/// <param name="dt">DataTable对象</param>
/// <param name="strExcelFile">Excel文件名</param>
/// <param name="strError">out参数,返回出错信息</param>
/// <returns>
/// -1 出错
/// 0 成功
/// </returns>
public static int DataTable2Excel(System.Data.DataTable dt,
string strExcelFileName,
out string strError)
{
strError = "";
int nRet = 0; Excel.Application xlApp = new Excel.Application();
Excel.Workbooks workbooks = xlApp.Workbooks;
Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
//~~
// 写字段名
for (int i = 0; i < dt.Columns.Count; i++)
{
DataColumn col = dt.Columns[i];
worksheet.Cells[1, i+1] = col.ColumnName;
} // 写记录
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow row = dt.Rows[i];
for (int j = 0; j < dt.Columns.Count; j++)
{
worksheet.Cells[i+2, j+1] = row[j].ToString().Trim();
}
} worksheet.Columns.EntireColumn.AutoFit();//自动适应每列的宽度
workbook.Saved = true;
workbook.SaveCopyAs(strExcelFileName); // 关掉内存中的进程
xlApp.Quit();
return 0;
}