返回目录:excel表格制作
使用插入[对象]的方法比较简单百,而且可以即时度更改编辑excel
方法:单击 [ 插入专]---[ 文本 ]---[ 对象 ]
出现[对话框] ---选择[ 由文件创建 ] --- 选择相关属excel --确定插入
/// <summary>
/// 导出到Excel
/// </summary>
/// <param name="gridControl">GridControl</param>
/// <param name="fileNameTitle">导出到Excel的Sheet文件名称</param>
public static void ExportToExcel(this GridControl gridControl, string fileNameTitle)
{
var fileName = SaveAs(fileNameTitle);
XlsExportOptions options = new XlsExportOptions();
options.Suppress256ColumnsWarning = true;
options.Suppress65536RowsWarning = true;
options.TextExportMode = TextExportMode.Text;
options.SheetName = fileNameTitle;
var gridView = (GridView)gridControl.Views[0];
gridView.AppearancePrint.Row.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap;
gridView.OptionsPrint.AutoWidth = false;
gridView.AppearancePrint.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
gridControl.ExportToXls(fileName, options);
if (MessageCommon.ShowQueInf("保存成功,是否7a64e4b893e5b19e363打开文件?") == DialogResult.Yes)
System.Diagnostics.Process.Start(fileName);//打开指定路径下的文件
}
我也遇见这个问题了 网上找了好半天!最后的结果是
XtraReport 的 XRTable 不能合并行(XRTableRow)
最多可以实现合并列的效果但是没有意义 只不过是吧 XRTableRow 删除一个列
我自己的解决办法是创建多个 XRTable 拼成一个大XRTable的效果
这样就可以实现
有一个小小的问题是 XRTable 和 XRTable 之间的位置要定义好
也可以代码控制
/// <summary>
/// 获取XRTable位置
/// </summary>
/// <param name="p_info">Page容器(只存在XRTable才有效)</param>
/// <returns>得到位置</returns>
private Point GetTable(PageHeaderBand p_info)
{
Point point = new Point();//XRTable.Location(坐标e79fa5e98193e4b893e5b19e365位置(类型是Point ))
point.X = 0;//默认位置是纸张减去边距的位置(0就可以了)
point.Y = 0;//默认是XRTable的高度如果设置高了会出现空白(所以一直不用设置保持0)
foreach (XRTable item in p_info.Controls)
{
//将Page容器里的所有XRTable宽度叠加就是你下一个 XRTable的位置
//根据情况减去 边框宽度
point.X += (item.Width-3);
}
return point;
}
得到了坐标位置后在加入到容器中就可以了
CreateTableHeader 方法只是举例 请勿直接使用
private PageHeaderBand CreateTableHeader()
{
PageHeaderBand new_PageHeaderBand = new PageHeaderBand();
XRTable tableHeader = new XRTable();
XRTableRow headerRowOne = new XRTableRow ();//一级表头
XRTableRow headerRowTwo = new XRTableRow ();//二级表头
tableHeader.Rows.Add(headerRowOne);
tableHeader.Rows.Add(headerRowTwo);
tableHeader.Location = GetTable(new_PageHeaderBand);
new_PageHeaderBand.Controls.Add(tableHeader);
}
private void barExport_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Title = "导出Excel";
saveFileDialog.Filter = "Excel文件(*.xls)|*.xls";
DialogResult dialogResult = saveFileDialog.ShowDialog(this);
if (dialogResult == DialogResult.OK)
{
DevExpress.XtraPrinting.XlsExportOptions options = new DevExpress.XtraPrinting.XlsExportOptions();
gridControl1.ExportToXls(saveFileDialog.FileName);
DevExpress.XtraEditors.XtraMessageBox.Show("保存成e799bee5baa6e59b9ee7ad94363功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); }
}