我正在制作一个Windows应用商店应用,我希望允许用户按下"导出到Word"按钮,将他们输入到应用程序中的所有数据显示在Word文档中,并保存到计算机上的所需位置。下面的代码是代码的测试段,它几乎完成了我所追求的目标,但是在保存文档并使用Word而不是应用程序打开它之后,由于它显然已损坏而无法打开文件。但是,当您在记事本中打开它时,文本会显示为我想要的内容。
private async void exportToWord_Click(object sender, RoutedEventArgs e)
{
await ExportToWord();
}
private async Task ExportToWord()
{
// Create the picker object and set options
Windows.Storage.Pickers.FileSavePicker savePicker = new Windows.Storage.Pickers.FileSavePicker();
savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary;
// Dropdown of file types the user can save the file as
savePicker.FileTypeChoices.Add("Word", newList<string>{".docx"});
// Default file name if the user does not type one in or select a file to replace
savePicker.SuggestedFileName = "Test";
Windows.Storage.StorageFile file = await savePicker.PickSaveFileAsync();
MessageDialog mD;
if (file != null)
{
// Prevent updates to the remote version of the file until we finish
// making changes and call CompleteUpdatesAsync.
Windows.Storage.CachedFileManager.DeferUpdates(file);
// write to file
await Windows.Storage.FileIO.WriteTextAsync(file, createContentsOfFile());
// Let Windows know that we're finished changing the file so the other
// app can update the remote version of the file.
// Completing updates may require Windows to ask for user input.
Windows.Storage.Provider.FileUpdateStatus updateStatus = await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file);
if (updateStatus == Windows.Storage.Provider.FileUpdateStatus.Complete)
{
mD = newMessageDialog("Connect exported to:" + file, "Export Successful");
}
else
{
mD = newMessageDialog("Could not save file. Try again", "Export Unsuccessful");
}
}
else
{
mD = newMessageDialog("Operation canceled because the file could not be found. Try again", "Export Unsuccessful");
}
await mD.ShowAsync();
}
private string createContentsOfFile()
{
return "Testing...";
}
我认为问题在于我将纯文本输出到Word文档,但它需要以特定格式输出才能正确输出并显示在Word文档中。有没有办法在Windows应用商店应用中执行此操作?
任何帮助都将不胜感激。
答案 0 :(得分:0)
我不知道任何可用于Windows运行时应用程序的Word文档组件(Microsoft不提供,但可能存在我不知道的第三方组件。)
您可以获得documentation on the docx格式,对于简单文本,它可能不会太复杂(我不确定),或者您可以使用Word可以打开的其他格式。
如果你不需要格式化,我可能会坚持使用txt。
如果您需要少量格式化,那么rtf是一个不错的选择。生成自己或RichEditBox可以导出RTF格式文本非常简单,然后可以将其保存为.doc文件并在Word中打开。