|
@@ -11,17 +11,17 @@ namespace OASystem.API.OAMethodLib.File
|
|
|
public class AsposeHelper
|
|
|
{
|
|
|
|
|
|
- #region downWordToModel
|
|
|
+ #region DownWordToModel
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据Word模板进行数据的导出Word操作
|
|
|
/// </summary>
|
|
|
/// <param name="tempPath">模板路径</param>
|
|
|
- /// <param name="outputPath">保存路径</param>
|
|
|
+ /// <param name="outputFileName">保存文件名称</param>
|
|
|
/// <param name="dic">数据源 key 对应 value</param>
|
|
|
/// <param name="listDt">需要循环的数据DataTable 多个注意DataTableName </param>
|
|
|
/// <returns>返回的文档路径</returns>
|
|
|
- public static string ExpertWordToModel(string tempPath, string outputPath, Dictionary<string,object> dic, List<DataTable>? listDt)
|
|
|
+ public static string ExpertWordToModel(string tempPath, string outputFileName, Dictionary<string,object> dic, List<DataTable>? listDt)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
@@ -54,6 +54,8 @@ namespace OASystem.API.OAMethodLib.File
|
|
|
//合并模版,相当于页面的渲染
|
|
|
doc.MailMerge.Execute(new[] { "PageCount" }, new object[] { doc.PageCount });
|
|
|
//保存合并后的文档
|
|
|
+
|
|
|
+ string outputPath = string.Format("C:\\Server\\File\\OA2023\\Office\\Word\\TencentOCR\\Save\\{0}", outputFileName);
|
|
|
doc.Save(outputPath);
|
|
|
return outputPath; //返回下载地址
|
|
|
}
|
|
@@ -72,6 +74,58 @@ namespace OASystem.API.OAMethodLib.File
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
-
|
|
|
+ #region DownExcelToModel
|
|
|
+ /// <summary>
|
|
|
+ /// 根据Word模板进行数据的导出Word操作
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="tempPath">模板路径</param>
|
|
|
+ /// <param name="outputPath">保存路径</param>
|
|
|
+ /// <param name="dic">数据源 key 对应 value</param>
|
|
|
+ /// <param name="listDt">需要循环的数据DataTable 多个注意DataTableName </param>
|
|
|
+ /// <returns>返回的文档路径</returns>
|
|
|
+ public static string ExpertExcelToModel(string tempPath, string outputFileName, Dictionary<string, object> dic, List<DataTable>? listDt)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ removeWatermark();//加载监听,用于去除水印
|
|
|
+
|
|
|
+ List<string> fieldNames = new List<string>(); //字段名字符串数组
|
|
|
+ List<object> fieldValues = new List<object>(); //字段值数组
|
|
|
+
|
|
|
+ foreach (string key in dic.Keys)
|
|
|
+ {
|
|
|
+ fieldNames.Add(key);
|
|
|
+ fieldValues.Add(dic[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ //载入模板
|
|
|
+ Document doc = new Document(tempPath);
|
|
|
+ doc.MailMerge.Execute(fieldNames.ToArray(), fieldValues.ToArray());
|
|
|
+ //将我们获得的DataTable类型的数据:EduDataTable放入doc方法中做处理
|
|
|
+ if (listDt != null && listDt.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (DataTable dt in listDt)
|
|
|
+ {
|
|
|
+ if (dt != null && dt.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ doc.MailMerge.ExecuteWithRegions(dt);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //合并模版,相当于页面的渲染
|
|
|
+ doc.MailMerge.Execute(new[] { "PageCount" }, new object[] { doc.PageCount });
|
|
|
+ //保存合并后的文档
|
|
|
+ doc.Save(outputPath);
|
|
|
+ return outputPath; //返回下载地址
|
|
|
+ }
|
|
|
+ catch (Exception er)
|
|
|
+ {
|
|
|
+ return er.Message;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
}
|
|
|
}
|