♂changlei() 10:30:26
也是之前网上抄来的一段代码,如下:
[C#] 纯文本查看 复制代码 /// <summary>
/// 从ListView到Excel具体方法
/// </summary>
/// <param name=”lv”></param>
/// <param name=”filename”></param>
public static void LvtoExcel(ListView lv, string filename) //listview导入EXCEL方法
{
int rownum = lv.Items.Count; //取总行数
if (rownum == 0 || string.IsNullOrEmpty(filename))
{
MessageBox.Show("没有记录");
return;
}
int columnnum = lv.Items[0].SubItems.Count; //列数
int rowindex = 1; //定义excel行索引从1开始, excel都是从1开始
int columnindex = 0; //定义excel列索引
if (rownum > 0)
{
Microsoft.Office.Interop.Excel.Application excelapp = new Microsoft.Office.Interop.Excel.Application(); //初始化一个excel实例
if (excelapp == null)
{
MessageBox.Show("无法创建EXCEL对象,可能你的系统没有安装EXCEL,将转成保存成WPSExcel格式!");
// LvtoWpsExcel(lv, filename);
return;
}
//因为使用COM库,因此有许多变量用Nothing代替
Object Nothing = Missing.Value;
Microsoft.Office.Interop.Excel.Workbook wb = excelapp.Workbooks.Add(Nothing); //创建excel工作薄对象
Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets[1]; // 指定excel第一页为工作表
//将ListView的列名导入Excel第一行
foreach (ColumnHeader lc in lv.Columns) //遍历listview列头
{
columnindex++;
ws.Cells[rowindex, columnindex] = lc.Text; //向excel表格填列名数据
}
//将ListView的值导入Excel
for (int i = 0; i < rownum; i++) //遍历listview行
{
rowindex++;
columnindex = 0;
for (int j = 0; j < columnnum; j++) //遍历listview列
{
columnindex++;
//注意这个在导出是加”\t”的目的是避免导出的数据显示为科学计数法
//if (columnindex == 8) //本程序中第八列为时间 加上/t显示为正常的时间格式
//{
// ws.Cells[rowindex, columnindex] = Convert.ToString(lv.Items.SubItems[j].Text.Trim(). + "\t"); //向excel表格填数据
//}
//else
//{
ws.Cells[rowindex, columnindex] = Convert.ToString(lv.Items.SubItems[j].Text.ToString().Trim()); //向excel表格填数据
//}
}
}
wb.SaveAs(filename, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Nothing, Nothing, Nothing, Nothing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Nothing, Nothing, Nothing, Nothing, Nothing); //保存
wb.Close(Nothing, Nothing, Nothing); //关闭工作薄
excelapp.Quit(); //退出实例
}
}
♂changlei() 10:32:50
♂站长苏飞() 10:32:52
直接使用流写,不要用这个用StreamWrite
|