我正在使用Windows窗体应用程序C#,在将数据导出到Excel时遇到了问题。我对这方面的知识不够,不知道是否可能。我尝试搜索这方面的内容,但似乎无法正确编写问题。我只想知道这是否可能,是否有关于这方面的文档。我有一个模板:Excel模板:
这就是我想要的打印输出打印输出:
我该如何做到这一点?
41ik7eoe1#
看看下面的演示。我把它做得很简单。创建一个WinForms项目(在本例中,它的名称为WindowsFormsApp 3)。建立强型别数据集-ProductsDataSet。
ProductsDataSet
将新的静态类Extensions添加到项目中
Extensions
namespace WindowsFormsApp3 { using Microsoft.Office.Interop.Excel; static class Extensions { } }
在此类中插入以下2个方法第一种方法
private static void Export(this ProductsDataSet dataSet, Worksheet worksheet) { var products = dataSet.Product.Select(); for (int i = 1, j = 6; i < products.Length; i++, j += 5) { worksheet.Range["A1", "D4"].Copy(Type.Missing); worksheet.Range[$"A{j}"].PasteSpecial(XlPasteType.xlPasteAll, XlPasteSpecialOperation.xlPasteSpecialOperationNone, true, Type.Missing); } for (int i = 0, j = 3; i < products.Length; i++, j += 5) { worksheet.Range[$"B{j}"].Value = products[i][0]; worksheet.Range[$"C{j}"].Value = products[i][1]; } }
第二种方法
public static void Export(this ProductsDataSet dataSet, string fileName) { Application application = new Application(); var workbook = application.Workbooks.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing ); dataSet.Export((Worksheet)workbook.Worksheets[1]); application.Visible = true; }
如下所示自定义Form1
Form1
为按钮Click事件订阅以下事件处理程序
private void Button1_Click(object sender, EventArgs e) { using (var openFileDialog = new OpenFileDialog()) { switch (openFileDialog.ShowDialog()) { case DialogResult.OK: var directoryName = System.IO.Path .GetDirectoryName(openFileDialog.FileName); var fileName = System.IO.Path .GetFileName(openFileDialog.FileName); var destFileName = $"{directoryName}\\{DateTime.Now.Ticks}.{fileName}"; System.IO.File.Copy(openFileDialog.FileName, destFileName); productsDataSet1.Export(destFileName); break; } } }
我创建了下面的Excel模板文件,类似于你的。程序将打开这个文件,并从productsDataSet1的数据填充它。
productsDataSet1
这是正在运行应用程序
以下是导出的excel文件中的数据x1c4d 1x指令集
1条答案
按热度按时间41ik7eoe1#
看看下面的演示。我把它做得很简单。
创建一个WinForms项目(在本例中,它的名称为WindowsFormsApp 3)。
建立强型别数据集-
ProductsDataSet
。将新的静态类
Extensions
添加到项目中在此类中插入以下2个方法
第一种方法
第二种方法
如下所示自定义
Form1
为按钮Click事件订阅以下事件处理程序
我创建了下面的Excel模板文件,类似于你的。程序将打开这个文件,并从
productsDataSet1
的数据填充它。这是正在运行应用程序
以下是导出的excel文件中的数据
x1c4d 1x指令集