C# 保存用户输入供以后使用C
好的 我有一个VSC Excel外接程序,我的组织使用它进行各种选择以将数据拉入Excel。用户界面是windows窗体。有一个下拉框,它为一个组合框提供可用参数,用户在其中选择定义查询参数的输入。我在列表框中显示参数,以便用户可以选择他/她选择的内容。我曾请求能够保存参数输入,以便用户可以快速回忆,而不必反复输入相同的信息,但不确定最佳方法 基本上,用户需要存储第一个下拉框以及列表框中与之相关的参数。创建一个文本文件保存到用户PC上是最好的方法吗?我曾想过创建一个隐藏的选项卡,将它们存储在Excel中,但后来仅限于该文件。我对C比较陌生,所以不确定是否有更好的方法我不知道 干杯,C# 保存用户输入供以后使用C,c#,excel,visual-studio,vsto,C#,Excel,Visual Studio,Vsto,好的 我有一个VSC Excel外接程序,我的组织使用它进行各种选择以将数据拉入Excel。用户界面是windows窗体。有一个下拉框,它为一个组合框提供可用参数,用户在其中选择定义查询参数的输入。我在列表框中显示参数,以便用户可以选择他/她选择的内容。我曾请求能够保存参数输入,以便用户可以快速回忆,而不必反复输入相同的信息,但不确定最佳方法 基本上,用户需要存储第一个下拉框以及列表框中与之相关的参数。创建一个文本文件保存到用户PC上是最好的方法吗?我曾想过创建一个隐藏的选项卡,将它们存储在Ex
Ryan正如您所说,您不想将它们限制在关联的文件中,我的方法可能是将其保存到用户的AppData文件夹中,并使用XML序列化。您可以看到下面的示例 数据将位于C:\Users\$user$\AppData\Roaming或…\Local中,具体取决于您选择的AppData文件夹。请参阅以了解更多信息 序列化:
// this is just an example object, can do whatever you'd like here
var myObject = new MyObject()
{
MyValue = "some data"
};
string path = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"MyExcelAddIn\\data.xml");
Directory.CreateDirectory(Path.GetDirectoryName(path));
var serializer = new XmlSerializer(typeof(MyObject));
using (var fileStream = new FileStream(path, FileMode.Create))
{
serializer.Serialize(fileStream, myobject);
}
string path = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"MyExcelAddIn\\data.xml");
MyObject myObject;
var serializer = new XmlSerializer(typeof(MyObject));
using (var fileStream = new FileStream(path, FileMode.Open))
{
myObject = (MyObject)serializer.Deserialize(fileStream);
}
MessageBox.Show(myObject.MyValue);
反序列化:
// this is just an example object, can do whatever you'd like here
var myObject = new MyObject()
{
MyValue = "some data"
};
string path = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"MyExcelAddIn\\data.xml");
Directory.CreateDirectory(Path.GetDirectoryName(path));
var serializer = new XmlSerializer(typeof(MyObject));
using (var fileStream = new FileStream(path, FileMode.Create))
{
serializer.Serialize(fileStream, myobject);
}
string path = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"MyExcelAddIn\\data.xml");
MyObject myObject;
var serializer = new XmlSerializer(typeof(MyObject));
using (var fileStream = new FileStream(path, FileMode.Open))
{
myObject = (MyObject)serializer.Deserialize(fileStream);
}
MessageBox.Show(myObject.MyValue);
谢谢你的反馈,这很有意义。欣赏这个例子,以及与它一起去!