我是Windows应用程序开发的新手,试图编写用于将数据集导出到excel的代码。我已经在互联网上阅读了几个关于此的例子,但都将文件导出到某个位置。我想像在web中一样导出文件(作为一个打开要求保存为文件) 下面是我的Web应用程序代码,我们需要在窗口上运行它需要做哪些更改?
const _ = require('lodash')
let newState = _.cloneDeep(state)
for(let key in action) {
newState.visitedData[key] = action[key]
}
答案 0 :(得分:0)
此示例将告诉您How to export Dataset to Excel,如果您在此link上看到第二个答案,您将了解如何允许用户将文档保存在其电脑中的任何位置。您可以打开Excel
文件by following this link
在提出问题之前一定要搜索,因为无论你问什么,这里都可以找到所有内容。
希望它有所帮助!
答案 1 :(得分:0)
在搜索Windows桌面应用程序相关答案时,使用关键字" Winforms"," C#"。
您需要使用SaveFileDialog
类选择文件,并使用FileStream
向其中写入内容。
答案 2 :(得分:0)
感谢您提供了这么多提示,以下是转换为窗口应用后的最终代码
希望它会帮助别人
private void btn_export_Click(object sender, EventArgs e)
{
try
{
SaveFileDialog savefile = new SaveFileDialog();
savefile.FileName = "Response.xls";
savefile.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
if (dset.Tables[0].Rows.Count > 0)
{
if (savefile.ShowDialog() == DialogResult.OK)
{
//using (StreamWriter sw = new StreamWriter(savefile.FileName))
// sw.WriteLine("Hello World!");
StreamWriter wr = new StreamWriter(savefile.FileName);
for (int i = 0; i < dset.Tables[0].Columns.Count; i++)
{
wr.Write(dset.Tables[0].Columns[i].ToString().ToUpper() + "\t");
}
wr.WriteLine();
//write rows to excel file
for (int i = 0; i < (dset.Tables[0].Rows.Count); i++)
{
for (int j = 0; j < dset.Tables[0].Columns.Count; j++)
{
if (dset.Tables[0].Rows[i][j] != null)
{
wr.Write(Convert.ToString(dset.Tables[0].Rows[i][j]) + "\t");
}
else
{
wr.Write("\t");
}
}
//go to next line
wr.WriteLine();
}
//close file
wr.Close();
MetroMessageBox.Show(this, "Data saved in Excel format at location "+ savefile.FileName , "Successfully Saved", MessageBoxButtons.OK, MessageBoxIcon.Question);
}
}
else
{
MetroMessageBox.Show(this,"Zero record to export , perform a operation first","Can't export file",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
MetroMessageBox.Show(this, v1.PrintExceptionDetails(ex), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
el.LogError(ex);
}
finally
{
}
}