使用 WinForms C# 和 VB.NET 导入和导出 CSV 文件
Spread.NET可帮助您创建电子表格、网格、仪表板和表单。它包括一个强大的计算引擎,具有 450 多个函数以及导入和导出 Microsoft Excel 电子表格的能力。开发人员可以利用广泛的 .NET 电子表格 API 和强大的计算引擎来创建分析、预算、仪表板、数据收集和管理、科学和财务应用程序。
在此博客中,MESCIUS 产品经理 Kevin Ashley 将带您完成使用 Spread.NET 导入和导出 CSV 文件中的数据所需的所有步骤,包括:
- 创建/配置项目
- 创建文件菜单
- 创建/配置SplitContainer
- 添加事件处理程序代码
- …以及更多!
将在运行时使用Spread Designer工具,只需一行代码即可在运行的应用程序中编辑 Excel 电子表格实例。最后,我将展示如何创建一个简单的前端电子表格用户界面,将FpSpread电子表格控件与NameBox和FormulaTextBox控件集成,使用分割窗格创建主用户界面,以及如何实现菜单项来处理文件 –C#和VB中的“打开”、“文件 – 保存”和“文件 – 设计”命令。
以下是在 C# 和 VB.net WinForms 中导入和导出 CSV 文件的步骤:
- 创建项目
- 配置项目
- 创建文件菜单
- 创建SplitContainer1
- 配置SplitContainer1
- 创建SplitContainer2
- 创建 FpSpread
- 创建名称框
- 创建公式文本框
- 创建 WinForms 电子表格设计器组件
- 为文件菜单项创建事件处理程序
- 添加事件处理程序代码
这些步骤需要:
- Microsoft Visual Studio 2022(注意:虽然这些步骤适用于 VS2022 和 .NET 6,但 Spread.NET WinForms 也可以在面向 .NET 4.6.2+ 的早期版本的 Visual Studio 中工作,遵循这些相同的步骤)
- Spread.NET for WinForms(试用版或许可版)-在此处获取 Spread.NET WinForms的 30 天免费试用版。
第 1 步:创建项目
我们可以首先在Visual Studio 2022中创建一个新项目,选择C#、Windows和Desktop来筛选项目,然后选择C#或VBWinForms App。
第 2 步:配置项目
输入SpreadWinformsCSVIO作为项目名称。
第 3 步:创建文件菜单
现在,让我们添加一个MenuStrip。在“工具箱”窗口 (F4 ) 的“菜单和工具栏”类别下,双击MenuStrip组件以在窗体中创建一个新的MenuStrip :
通过使用关联的快捷键单击,创建“文件 – 打开”、“文件 – 保存”、“文件 – 另存为”、“文件 – 设计”和“文件 – 退出”菜单项:
请注意,文件 – 保存菜单项最初应被禁用。菜单分隔符(对菜单项文本使用“-”来创建菜单分隔符)和快捷键是可选的,但建议使用。我们将在稍后的步骤中为这些菜单项添加代码。
步骤4:创建SplitContainer1
注意:使用 FpSpread 并不一定服务器托管网需要添加拆分器,但 SplitContainer 控件使创建友好且灵活的电子表格界面变得更加容易,因为它会自动处理电子表格、名称框和公式文本框控件的大小调整,而无需任何代码。
在工具箱(CTRL+ALT+X ) 中,展开Containers类别,然后双击SplitContainer控件以创建splitContainer1:
步骤5:配置SplitContainer1
在“属性”窗口 (F4) 中,对于splitContainer1,将Orientation设置为Horizontal,然后将Panel1MinSize和SplitterDistance设置为23:
电子表格将位于底部窗格中,编辑栏界面将位于顶部窗格中,拆分器将确定FormulaTextBox控件的高度,以显示换行的长公式。
第6步:创建SplitContainer2
在工具箱(CTRL+ALT+X ) 中,将新的SplitContainer拖放到splitContainer1的顶部窗格 (Panel1) 内以创建splitContainer2:
在“属性”窗口 (F4) 中,对于splitContainer2,将Panel1MinSize和SplitterDistance设置为150:
第 7 步:创建 FpSpread
在“解决方案资源管理器”中,展开“解决方案 SpreadNetQuickStart”和“项目 SpreadNetQuickStart”,然后右键单击“依赖项”并选择“管理 NuGet 包…”(或按ALT+P+N+N+N+ENTER):
然后,在NuGet Package Manager中,选择左上角的Browse,然后在搜索框中键入Spread.WinForms以查找最新的GrapeCity.Spread.WinForms,然后单击Install:
安装GrapeCity.Spread.WinForms后,继续安装GrapeCity.Spread.WinForms.Design– 该软件包包含fpSpreadDesigner组件,用于在运行时显示Spread Designer工具。
然后,在工具箱(CTRL+ALT+X) 中,选择FpSpread控件:
最后,将FpSpread的实例绘制到SplitContainer1的底部窗格 (Panel2)中。当您创建控件时, Spread 设计器工具可能会打开(这是默认行为) – 现在,如果出现,请关闭Spread 设计器。
使用属性网格 (F4),将Dock属性设置为Fill:
第 8 步:创建名称框
在工具箱(CTRL+ALT+X ) 中,展开GrapeCity Spread for WinForms的类别,然后选择NameBox控件:
在左上角的Panel1(SplitContiner2.Panel1) 内绘制一个新的NameBox:
在“属性”窗口 (F4) 中,对于nameBox1,将Dock设置为Fill:
在nameBox1的右上角,单击指示器打开NameBox Tasks,然后单击AttachTo下拉列表并选择fpSpread1– 这将以代码隐藏形式生成代码,以将NameBox控件附加到FpSpread控件:
第 9 步:创建 FormulaTextBox
在工具箱(CTRL+ALT+X) 中,展开容器并选择面板控件:
在Panel2内(NameBox1右侧),绘制一个新的Panel:
在“属性”窗口 (F4) 中,对于panel1,将BorderStyle设置为FixSingle并将Dock设置为Fill:
在工具箱 (CTRL+ALT+X) 中,选择FormulaTextBox控件:
在panel1(位于splitContainer2.Panel2内部)内,绘制一个新的FormulaTextBox控件:
在FormulaTextBox1 的属性窗口 (F4)中,将BorderStyle设置为None并将Dock设置为Fill:
在FormulaTextBox1的右上角,单击指示器打开FormulaTextBox 任务,然后单击AttachTo下拉列表并选择fpSpread1– 这将以代码隐藏形式生成代码,以将FormulaTextBox控件附加到FpSpread控件:
步骤 10:创建 WinForms 电子表格设计器组件
现在,在Toolbox窗口 (CTRL+ALT+X) 的 GrapeCity Spread Design for WinForms 类别下,双击FpSpreadDesigner组件以在表单中创建一个新的FpSpreadDesigner :
刚刚添加的fpSpreadDesigner1组件应显示在组件menuStrip1和fpSpread1_Sheet1旁边的表单组件托盘中:
步骤 11:为文件菜单项创建事件处理程序
对于“文件”菜单中的每个菜单项,在设计视图中双击该菜单项,直到每个菜单项都有一个在 VB 或 C# 代码中生成的关联菜单处理程序:
第 12 步:添加事件处理程序代码
复制以下代码来实现事件处理程序:
[C#]
添加事件处理程序代码 C#
private string mFileName = null;
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "CSV file (*.csv)|*.csv| All Files (*.*)|*.*";
ofd.FilterIndex = 0;
if (ofd.ShowDialog() == DialogResult.OK)
{
mFileName = ofd.FileName;
fpSpread1.Sheets[0].LoadTextFile(mFileName, FarPoint.Win.Spread.TextFileFlags.None, FarPoint.Win.Spread.Model.IncludeHeaders.None, "", ",", "");
saveToolStripMenuItem.Enabled = true;
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
fpSpread1.Sheets[0].SaveTextFile(mFileName, FarPoint.Win.Spread.TextFileFlags.None, FarPoint.Win.Spread.Model.IncludeHeaders.None, "", ",", "");
}
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "CSV file (*.csv)|*.csv| All Files (*.*)|*.*";
sfd.FilterIndex = 0;
sfd.FileName = mFileName;
if (sfd.ShowDialog() == DialogResult.OK)
{
mFileName = sfd.FileName;
fpSpread1.Sheets[0].SaveTextFile(mFileName, FarPoint.Win.Spread.TextFileFlags.None, FarPoint.Win.Spread.Model.IncludeHeaders.None, "", ",", "");
saveToolStripMenuItem.Enabled = true;
}
}
private void designToolStripMenuItem_Click(object sender, EventArgs e)
{
fpSpreadDesigner1.ShowDialog(fpSpread1);
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult ret = MessageBox.Show("Do you want to save this file before closing?", "Save Spreadsheet", MessageBoxButtons.YesNoCancel);
if (ret == DialogResult.Cancel)
return;
else if (ret == DialogResult.Yes)
saveToolStripMenuItem_Click(null, EventArgs.Empty);
Close();
}
[VB]
添加事件处理程序代码 VB
Private mFileName As String = Nothing
Private Sub OpenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OpenToolStripMenuItem.Click
Dim ofd As New OpenFileDialog
ofd.Filter = "CSV file (*.csv)|*.csv| All Files (*.*)|*.*"
ofd.FilterIndex = 0
If ofd.ShowDialog() = DialogResult.OK Then
mFileName = ofd.FileName
FpSpread1.Sheets(0).LoadTextFile(mFileName, FarPoint.Win.Spread.TextFileFlags.None, FarPoint.Win.Spread.Model.IncludeHeaders.None, "", ",", "")
SaveToolStripMenuItem.Enabled = True
End If
End Sub
Private Sub SaveToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaveToolStripMenuItem.Click
FpSpread1.Sheets(0).SaveTextFile(mFileName, FarPoint.Win.Spread.TextFileFlags.None, FarPoint.Win.Spread.Model.IncludeHeaders.None, "", ",", "")
End Sub
Private Sub SaveAsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaveAsToolStripMenuItem.Click
Dim sfd As SaveFileDialog = New SaveFileDialog()
sfd.Filter = "CSV file (*.csv)|*.csv| All Files (*.*)|*.*"
sfd.FilterIndex = 0
sfd.FileName = mFileName
If sfd.ShowDialog() = DialogResult.OK Then
mFileName = sfd.FileName
FpSpread1.Sheets(0).SaveTextFile(mFileName, FarPoint.Win.Spread.TextFileFlags.None, FarPoint.Win.Spread.Model.IncludeHeaders.None, "", ",", "")
SaveToolStripMenuItem.Enabled = True
End If
End Sub
Private Sub DesignToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DesignToolStripMenuItem.Click
FpSpreadDesigner1.ShowDialog(FpSpread1)
End Sub
Private Sub ExitToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExitToolStripMenuItem.Click
Dim ret As DialogResult = MessageBox.Show("Do you want to save this file before closing?", "Closing", MessageBoxButtons.YesNoCancel)
If ret = DialogResult.Cancel Then
Return
ElseIf ret = DialogResult.Yes Then
SaveToolStripMenuItem_Click(Nothing, EventArgs.Empty)
End If
Close()
End Sub
文件 – 打开的代码使用OpenFileDialog浏览 CSV 文件,然后使用FpSpread.Sheets.LoadTextFile方法打开选定的 CSV 文件。文件– 保存的代码使用FpSpread.Sheets.SaveTextFile将电子表格数据保存到 CSV,文件– 另存为的代码使用SaveFileDialog允许用户将文件保存到另一个位服务器托管网置或使用另一个名称。此功能允许 C# 或 VB.NET CSV 文件导入和导出。
File-Design 中的代码使用FpSpreadDesigner.ShowDialog方法在运行时显示Spread Designer工具,进行更改,然后将这些更改应用回表单中的电子表格实例。最后, “文件 – 退出”中的代码提示用户是否保存文件,然后使用Close方法关闭窗体。
准备好构建和运行!
该项目已准备好构建和运行。文件设计菜单将在运行时打开Spread Designer工具,如上所示,它可以将更改应用于表单中运行的电子表格实例。了解 Spread .NET 如何让您能够在应用程序中使用 C# 或 VB.NET 将电子表格导入和导出为 CSV。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 深入探究音视频开源库 WebRTC 中 NetEQ 音频抗网络延时与抗丢包的实现机制
目录 1、引言 2、WebRTC简介 3、什么是NetEQ? 4、NetEQ技术详解 4.1、NetEQ概述 4.2、抖动消除技术 4.3、丢包补偿技术 4.4、NetEQ概要设计 4.5、NetEQ的命令机制 4.6、NetEQ的播放机制 4.7、MCU的控…