49 lines
1.2 KiB
C#
Raw Normal View History

2025-02-27 19:15:03 +08:00
using Aspose.Words;
using Aspose.Words.Replacing;
using QFramework;
using System.IO;
using UnityEngine;
using System.Windows.Forms;
using Newtonsoft.Json.Linq;
2025-02-28 19:22:44 +08:00
using System;
2025-02-27 19:15:03 +08:00
public class AsposeHelper : MonoBehaviour
{
2025-02-28 19:22:44 +08:00
public static void Writer(string json, Action<DialogResult> callback = null)
2025-02-27 19:15:03 +08:00
{
// <20><><EFBFBD><EFBFBD>Word<72>ĵ<EFBFBD>
Document doc = new Document(Global.reportDemoPath);
JObject jObject = JObject.Parse(json);
foreach (JProperty property in jObject.Properties())
{
string key = property.Name;
string value = property.Value.ToString();
doc.Range.Replace($"{{{key}}}", $"{value}", new FindReplaceOptions());
}
// <20><EFBFBD>ı<EFBFBD>
2025-02-28 19:22:44 +08:00
SaveWithDialog(doc, callback);
2025-02-27 19:15:03 +08:00
//Debug.Log("<22>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5>ѱ<EFBFBD><D1B1>浽: " + outputFilePath);
}
2025-02-28 19:22:44 +08:00
private static void SaveWithDialog(Document doc, Action<DialogResult> callback)
2025-02-27 19:15:03 +08:00
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "Word<72>ĵ<EFBFBD>|*.docx";
2025-02-28 19:22:44 +08:00
var result = dialog.ShowDialog();
if (result == DialogResult.OK)
2025-02-27 19:15:03 +08:00
{
doc.Save(dialog.FileName);
}
2025-02-28 19:22:44 +08:00
callback?.Invoke(result);
2025-02-27 19:15:03 +08:00
}
}