用RDLC+ReportViewer做报表,现在客户要求不用预览就可以导出PDF和EXCEL,请问如何实现???

tsyj216 2012-08-21 10:29:35
我用的是V studio.net 2010,我报表开发用的是2010里集成的RDLC+REPORTVIEER,现在客户要求不用预览就可以导出PDF和EXCEL,请问如何实现
...全文
395 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxu724100 2012-09-15
  • 打赏
  • 举报
回复
比如这个例子就可以:http://blog.csdn.net/ycz815/article/details/6934653
zhangxu724100 2012-09-15
  • 打赏
  • 举报
回复
http://blog.csdn.net/lvincent_china/article/details/7245274

这个是不预览直接打印的例子,改成不预览导出应该不难,思路是一样的。
tsyj216 2012-08-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:

怎么在 生成Excel和pdf 时作数据处理???怎么做啊??谁知道?

转换下思路,现在datatable有了,分组条件是不是也有了!?
你把一张表,分成三张表,然后输出,不就行了!
[/Quote],大哥你是怎么理解的,你做过报表吗,你是按照SQL分组的啊,我的是在报表里分组的啊,
愚知 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

怎么在 生成Excel和pdf 时作数据处理???怎么做啊??谁知道?
[/Quote]
转换下思路,现在datatable有了,分组条件是不是也有了!?
你把一张表,分成三张表,然后输出,不就行了!
tsyj216 2012-08-23
  • 打赏
  • 举报
回复
怎么在 生成Excel和pdf 时作数据处理???怎么做啊??谁知道?
youqi1984 2012-08-22
  • 打赏
  • 举报
回复
那你就在生成Excel和pdf 时作数据处理。可以做的
tsyj216 2012-08-22
  • 打赏
  • 举报
回复
你说的不对,
不是我的意思,你想想我的报表里都做了分组了,我的DATATABLE导出EXCEL是没用的,你理解错我的意思了
愚知 2012-08-21
  • 打赏
  • 举报
回复
生成excel的代码

protected void ExportExcel(DataTable dt)
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
try
{
if (dt == null || dt.Rows.Count == 0) return;

if (xlApp == null)
{
MessageBox.Show("Unable to create Excel object, may your machine son not to install Excel", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
Microsoft.Office.Interop.Excel.Range range;
long totalCount = dt.Rows.Count;
long rowRead = 0;
float percent = 0;
for (int i = 0; i < dt.Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, i + 1];
range.Interior.ColorIndex = 15;
range.Font.Bold = true;
}
for (int r = 0; r < dt.Rows.Count; r++)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
worksheet.Cells[r + 2, i + 1] = dt.Rows[r][i].ToString();
}
rowRead++;
percent = ((float)(100 * rowRead)) / totalCount;
}

string filePath = "";
filePath = Application.ExecutablePath;

int FindIndex = filePath.IndexOf("\\");
filePath = filePath.Substring(0, FindIndex + 1) + "TEI_Export_AAR";
//xlApp.Visible = true;
DirectoryInfo TheFolder = new DirectoryInfo(filePath);
if (!TheFolder.Exists)
{
System.IO.Directory.CreateDirectory(filePath);
}
string temp = string.Format(@"\Mileage{0}.xls", Util.GetNowDate().ToString("MMddyyyymmss"));

FileInfo TheFile = new FileInfo(filePath + temp);
if (TheFile.Exists)
{
DateTime time = Util.GetNowDate();
temp = string.Format(@"\Mileage{0}.xls", time.ToString("MMddyyyymmss"));
}

//Save the result to a temp path
workbook.SaveAs(filePath + temp, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, null, null, false, false,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
//workbook.SaveAs(filePath + "picture");
MessageBox.Show(filePath + temp, "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception)
{
throw;
}
finally
{
xlApp.Quit();
GC.Collect();//
}


}

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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