从表发送数据到Excel [英] send Data from table to excel
本文介绍了从表发送数据到Excel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨!
我想用一个按钮将表格发送到Excel文件?
我该怎么做?
我看到很多东西,但我很困惑!
hi!
i want with a button to send the table to an excel file??
how i can do this??
i see many things but i am confused!!!
推荐答案
如果您正在谈论WinForms,最简单的方法是OLEDB.难于使用Excel互操作.要修改excel工作表的外观,最好使用excel interop.
If you are talking about WinForms,the easiest way is OLEDB.The harder is Excel interop.If you are to modify visuals of excel sheets, excel interop is preferable.
如果您能写出excel互操作失败的位置/方式,我可以帮忙吗?
I can help if you can write where/how excel interop failed?
您使用Excel Interopt,还不错.以下是如何创建Excel文件的示例:
You use Excel Interopt, which is not too bad. Here is an example of how to create an Excel file:
private static void Excel(string fileName, List<IDirectoryInventoryDataCollector> list)
{
try
{
var xlApp = new Excel.Application();
var xlWorkBook = xlApp.Workbooks.Add();
var xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
ExcelTitleRow(list[0], 1, xlWorkSheet);
int row = 2;
foreach (var item in list)
{
ExcelFillRow(item, row++, xlWorkSheet);
}
for (int i = 1; i < list[0].MaxLevel - 1; i++)
{
((Range)xlWorkSheet.Columns[i]).ColumnWidth = 2;
}
((Range)xlWorkSheet.Columns[list[0].MaxLevel - 1]).ColumnWidth = 30;
((Range)xlWorkSheet.Rows[1]).WrapText = true;
((Range)xlWorkSheet.Rows[1]).HorizontalAlignment = HorizontalAlignment.Center;
((Range)xlWorkSheet.Cells[1, 1]).WrapText = false;
xlWorkBook.SaveAs(fileName);
xlWorkBook.Close();
xlApp.Quit();
}
catch (AccessViolationException)
{
System.Windows.Forms.MessageBox.Show(
"Have encountered access violation. This could be issue with Excel 2000 if that is only version installed on computer",
"Access Violation");
}
catch (Exception)
{
System.Windows.Forms.MessageBox.Show("Unknown error",
"Unknown error");
}
}
private static void ExcelFillRow(IDirectoryInventoryDataCollector item, int row, Excel.Worksheet sheet)
{
sheet.Cells[row, item.Level] = item.Name;
int column = item.MaxLevel;
foreach (var property in item.GetProperties())
{
sheet.Cells[row, column++] = property;
}
}
private static void ExcelTitleRow(IDirectoryInventoryDataCollector item, int row, Excel.Worksheet sheet)
{
sheet.Cells[row, 1] = "Name";
int column = item.MaxLevel;
foreach (var property in item.GetPropertyNames())
{
sheet.Cells[row, column++] = property;
}
}
这篇关于从表发送数据到Excel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文