保存listview数据到相同的excel文件,但不同的表格
问题描述:
我已经知道如何使用openfiledialog保存在excel中。但我想要发生的是,当我保存另一个文件时,我希望它保存在我现有的文件中,但在另一张表中。你们能帮我吗?保存listview数据到相同的excel文件,但不同的表格
这是我救了
Public Sub saveExcelFile(ByVal FileName As String)
Dim xls As New Excel.Application
Dim sheet As Excel.Worksheet
Dim i As Integer
xls.Workbooks.Add()
sheet = xls.ActiveWorkbook.ActiveSheet
Dim row As Integer = 1
Dim col As Integer = 1
For Each item As ListViewItem In ListView1.Items
For i = 0 To item.SubItems.Count - 1
sheet.Cells(row, col) = item.SubItems(i).Text
col = col + 1
Next
row += 1
col = 1
Next
xls.ActiveWorkbook.SaveAs(FileName)
xls.Workbooks.Close()
xls.Quit()
End Sub
Private Sub btnsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsave.Click
Dim saveFileDialog1 As New SaveFileDialog
saveFileDialog1.Filter = "Excel File|*.xlsx"
saveFileDialog1.Title = "Save an Excel File"
saveFileDialog1.ShowDialog()
If saveFileDialog1.FileName <> "" Then
saveExcelFile(saveFileDialog1.FileName)
End If
MessageBox.Show("Record Saved!")
End Sub
答
使用NPOI导出到Excel代码。您可以使用NPOI指定工作表。见documentation更多细节
您还可以使用Officehelper
编辑:
用于创建使用NPOI Excel工作表此示例代码。这只是一个示例代码。您需要参阅文档以获取更多详细信息。
List<OrderViewModel> orderViewModelList = SelectOrders();
//Add Column title
HSSFWorkbook hssfworkbook = new HSSFWorkbook();
HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
sheet1.CreateRow(0).CreateCell(0).SetCellValue("Order No");
sheet1.CreateRow(0).CreateCell(5).SetCellValue("Price");
//check for if device exist for saving
if (orderViewModelList.Count() > 0)
{
//Convert to csv class type
int i = 0;
foreach (var item in orderViewModelList)
{
HSSFRow enqRow = sheet1.CreateRow(i + 1);
enqRow.CreateCell(0).SetCellValue(item.OrderId);
enqRow.CreateCell(5).SetCellValue((item.OrderAmount));
i++;
}
}
MemoryStream file = new MemoryStream();
hssfworkbook.Write(file);
byte[] Data = file.GetBuffer();
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=OrderReport.xls");
Response.Charset = "";
Response.ContentType = "application/ms-excel";
Response.BinaryWrite(Data);
Response.End();
如果你想一个新的工作表附加到现有的Excel工作表refer this example
喜prasanth!你可以给我的代码? –
你能不能给我一些代码? :) –
@SigridAnnOmila请参阅示例代码以创建excel。如果要使用现有文件并向其中添加一张表,请参阅最后一个链接 – Prasanth