最近做到导出word表格和图片,所以用到了word
public virtual string SaveEchartWord2(FormCollection form, int rowcount, string headStr,
string exportStr, string headTitle, string imgUrl)
{
//模板地址
var path = Server.MapPath(ConfigurationManager.AppSettings["ImportEchart"]);
Document doc = new Document(path);
DocumentBuilder builder = new DocumentBuilder(doc);
WriteHead(headTitle, builder);
#region 表格部分
builder.MoveToBookmark("myBookmark1");
var list1 = headStr.Split(',');
var count = list1.Count();
for (int i = 0; i < count; i++)
{
var headName = list1[i];
builder.InsertCell();
builder.Write(headName);
builder.CellFormat.Width = 10;
builder.CellFormat.Width = 10;
}
builder.EndRow();
var list2 = exportStr.Split(',');
for (int i = 0; i < rowcount; i++)
{
for (int t = 0; t < count; t++)
{
builder.InsertCell();
builder.Write(form["dataRow[" + i + "][" + list2[t] + "]"]);
}
builder.EndRow();
}
builder.EndTable();
#endregion
WriteImg(imgUrl, doc, builder);
//生成保存地址
var path1 = ConfigurationManager.AppSettings["FileUploadPath"] + "/" + CreatFileName() + ".doc";
doc.Save(Server.MapPath(path1));
return path1;
}
private static void WriteHead(string headTitle, DocumentBuilder builder)
{
//标题
builder.MoveToBookmark("myBookmark0");
//BreakType type = 0;
//builder.InsertBreak(type);
builder.Write(headTitle);
builder.CellFormat.Borders.LineStyle = LineStyle.Single;
}
/// <summary>
/// 保存echart和表格
/// </summary>
/// <param name="exportStr">表格保存列</param>
/// <param name="headStr">表格显示列</param>
/// <param name="headTitle">标题</param>
/// <param name="imgUrl">encode图片</param>
/// <param name="datatable">表格数据</param>
public virtual string SaveEchartWord(string exportStr, string headStr, string headTitle, string imgUrl,
DataTable datatable)
{
//模板地址
var path = Server.MapPath(ConfigurationManager.AppSettings["ImportEchart"]);
Document doc = new Document(path);
DocumentBuilder builder = new DocumentBuilder(doc);
WriteHead(headTitle, builder);
#region 表格部分
builder.MoveToBookmark("myBookmark1");
var list1 = headStr.Split(',');
var count = list1.Count();
for (int i = 0; i < count; i++)
{
var headName = list1[i].ToString();
builder.InsertCell();
builder.Write(headName);
builder.CellFormat.Width = 10;
builder.CellFormat.Width = 10;
}
builder.EndRow();
var list2 = exportStr.Split(',');
foreach (DataRow dr in datatable.Rows)
{
for (int i = 0; i < count; i++)
{
builder.InsertCell();
builder.Write(dr[list2[i]].ToString());
}
builder.EndRow();
}
builder.EndTable();
#endregion
#region 图表部分
WriteImg(imgUrl, doc, builder);
#endregion
//生成保存地址
var path1 = ConfigurationManager.AppSettings["FileUploadPath"] + "/" + CreatFileName() + ".doc";
doc.Save(Server.MapPath(path1));
return path1;
}