C# 数据流导出功能(cs/bs)

cs导出(方法一)

StringBuilder sb = new StringBuilder();
sb.Append("select sjdh as '送检单号',linename as '线列',partname as '零件名称',partlh as '零件料号',");
sb.Append("partbs as '零件标识',statename as '测量类型',partbs as '零件标识',");
sb.Append("state as '完成状态',");
sb.Append("RESULTTYPE as '测量结果',");
sb.Append("FILEFLAG as '上传状态',");
sb.Append("UPTIME as '开始时间',endtime as '结束时间',TIMECOST as '测量时长(秒)' from sys_meter where 1=1 ");
if (!string.IsNullOrEmpty(CX_SJDH.Text))
{
sb.Append(" and SJDH like '%" + CX_SJDH.Text + "%'");
}
if (!string.IsNullOrEmpty(CX_LINENAME.Text))
{
sb.Append(" and LINENAME='" + CX_LINENAME.Text + "'");
}
if (!string.IsNullOrEmpty(((DataRowView)XMMC.SelectedItem).Row["typename"].ToString()))
{
sb.Append(" and PARTNAME='" + ((DataRowView)XMMC.SelectedItem).Row["typename"].ToString() + "'");
}
if (!string.IsNullOrEmpty(LJLH.Text))
{
sb.Append(" and PARTLH='" + LJLH.Text + "'");
}
if (!string.IsNullOrEmpty(CLLX.Text))
{
sb.Append(" and STATENAME='" + CLLX.Text + "'");
}
if (!string.IsNullOrEmpty(WCZT.Text))
{
sb.Append(" and STATE=" + (int)Enum.Parse(typeof(Tools.SYS_USER.StateEnum), WCZT.Text));
}
if (!string.IsNullOrEmpty(JCJG.Text))
{
if (JCJG.Text == "合格(加严尺寸超差)") { JCJG.Text = "合格2"; }
sb.Append(" and RESULTTYPE=" + (int)Enum.Parse(typeof(Tools.SYS_USER.ResultType), JCJG.Text));
}
sb.Append(" and intime between '" + KSRQ.Value + "' AND '" + JSRQ.Value + "'");
//获取数据
DataTable dt = new BLL.SYS_METER().GetSqlList(sb.ToString()).Tables[0];
//询问导出文件保存地址
string _selectpath = "";
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
_selectpath = folderBrowserDialog1.SelectedPath;
}
string strPath = _selectpath + "查询_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls";
if (!string.IsNullOrEmpty(_selectpath) && new Tools.ExcelOpt().ExportEasy(dt, strPath))
{
if (MessageBox.Show("查询数据导出成功!\n文件保存在:'" + strPath + "'。\n是否现在打开?", "温馨提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
{
System.Diagnostics.Process.Start(strPath, "");
}
}

cs导出(方法二)

public static void DataTableToExcel(string filePath, System.Data.DataTable dataTable, bool isShowExcle)
{
#region 方法

SaveFileDialog fileDialog = new SaveFileDialog();
fileDialog.Filter = "Excel(97-2003)|*.xls";
if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
{
return;
}
//不允许dataGridView显示添加行,负责导出时会报最后一行未实例化错误
//dataTable.AllowUserToAddRows = false;
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet");
IRow rowHead = sheet.CreateRow(0);

//填写表头
for (int i = 0; i < dataTable.Columns.Count; i++)
{
rowHead.CreateCell(i, CellType.String).SetCellValue(dataTable.Columns[i].ColumnName.ToString());
}
//填写内容
for (int i = 0; i < dataTable.Rows.Count; i++)
{
IRow row = sheet.CreateRow(i + 1);
for (int j = 0; j < dataTable.Columns.Count; j++)
{
if (dataTable.Rows[i][j] != null)
{
row.CreateCell(j, CellType.String).SetCellValue(dataTable.Rows[i][j].ToString());
}
}
}

using (FileStream stream = File.OpenWrite(fileDialog.FileName))
{
workbook.Write(stream);
stream.Close();
}
MessageBox.Show("导出数据成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
GC.Collect();

#endregion
}

bs导出(方法一)

public void ExportToExcel(System.Data.DataTable dt)
{
if (dt != null)
{
StringWriter sw = new StringWriter();
sw.WriteLine("序\t规则名称\t车间信息\t报警位置\t报警状态\t时限(分钟)\t人员组别\t人员名称\t是否在节假日发送\t开始时间\t结束时间");
foreach (DataRow dr in dt.Rows)
{
sw.WriteLine(dr["序"] + "\t" + dr["规则名称"] + "\t" + dr["车间信息"] + "\t" + dr["报警位置"]
+ "\t" + dr["报警状态"] + "\t" + dr["时限(分钟)"] + "\t" + dr["人员组别"] + "\t" + dr["人员名称"] + "\t" + dr["是否在节假日发送"]
+ "\t" + dr["开始时间"] + "\t" + dr["结束时间"]);
}
sw.Close();
Response.AddHeader("Content-Disposition", "attachment; filename=baojingguize.xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
}
}

猜你喜欢

转载自www.cnblogs.com/mark666666/p/9202118.html