c# listview与xls表之间的问题 在导入xls表时,在xls表格里某列(如列头为姓名的一列)能不能使其添加到listview控件中指定的一个列头下面?也就是说,xls表格中不管这一列在什么位子,导入的时候始终能添加到listview中指定的列头下,能实现吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 列头是怎么定位的呢?就是listview怎么定位某个列头?表格里取我会,就这列头不知道怎么定位 问一下!xls能添加到listview中吗?是不是应该先将数据取出放到数据源中(DataTable)然后绑定不就可以了。你还管他列在哪里干吗 private static string ProcessExcel(IList<ProblemCodeRawdataInfo> list, string path, string virtualPath) { string timeFlag = DateTime.Now.ToFileTime().ToString(); string dirStr = path + DateTime.Now.ToFileTime().ToString(); System.IO.Directory.CreateDirectory(dirStr); int fileNum = 1; //不通过OLE生成excel文件的方法 for (int index = 0; index < list.Count; index++) { ProblemCodeExcel excel = new ProblemCodeExcel(GenFileName(dirStr + "\\")); excel.BeginWrite(); excel.WriteHeader(); Console.WriteLine("正在生成第" + fileNum.ToString() + "个文档....."); for (ushort row = 1; row < ushort.MaxValue && index < list.Count; row++, index++) { if (list[index] != null) { excel.WriteString(row, 0, list[index].CreateDate); excel.WriteString(row, 1, list[index].CaseId); excel.WriteString(row, 2, list[index].Country); excel.WriteString(row, 3, list[index].Datasource); excel.WriteString(row, 4, list[index].Engineer); excel.WriteString(row, 5, list[index].Model); excel.WriteString(row, 6, list[index].Problem); excel.WriteString(row, 7, list[index].ProblemCode); excel.WriteString(row, 8, list[index].ProblemDesc); excel.WriteString(row, 9, list[index].ProblemType); excel.WriteString(row, 10, list[index].ProblemTypeDesc); excel.WriteString(row, 11, list[index].ProductType); excel.WriteString(row, 12, list[index].Reply); excel.WriteString(row, 13, list[index].Series); excel.WriteString(row, 14, list[index].Server); excel.WriteString(row, 15, list[index].Subject); excel.WriteString(row, 16, list[index].SubSeries); } else break; } Console.WriteLine("生成成功!"); excel.EndWrite(); index--; fileNum++; } ZipDAO dao = new ZipDAO(dirStr); dao.ZipFold(); DeleteFile(dirStr); Console.WriteLine("处理完毕"); Thread.Sleep(1000); return virtualPath + timeFlag + ".rar"; }public class ExcelWriter { System.IO.FileStream _wirter; public ExcelWriter(string strPath) { _wirter = new System.IO.FileStream(strPath, System.IO.FileMode.OpenOrCreate); } /// <summary> /// 写入short数组 /// </summary> /// <param name="values"></param> private void _writeFile(ushort[] values) { foreach (ushort v in values) { byte[] b = System.BitConverter.GetBytes(v); _wirter.Write(b, 0, b.Length); } } /// <summary> /// 写文件头 /// </summary> public void BeginWrite() { _writeFile(new ushort[] { 0x809, 8, 0, 0x10, 0, 0 }); } /// <summary> /// 写文件尾 /// </summary> public void EndWrite() { _writeFile(new ushort[] { 0xa, 0 }); _wirter.Close(); } /// <summary> /// 写一个数字到单元格x,y /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="value"></param> public void WriteNumber(ushort x, ushort y, double value) { _writeFile(new ushort[] { 0x203, 14, x, y, 0 }); byte[] b = System.BitConverter.GetBytes(value); _wirter.Write(b, 0, b.Length); } /// <summary> /// 写一个字符到单元格x,y /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="value"></param> public void WriteString(ushort x, ushort y, string value) { byte[] b = System.Text.Encoding.UTF8.GetBytes(value); _writeFile(new ushort[] { 0x204, (ushort)(b.Length + 8), x, y, 0, (ushort)b.Length }); _wirter.Write(b, 0, b.Length); } } caozhy你进来下,有个事情想找你商量下! 如何设置打印机DPI 为什么没有pocket pc的论坛啊? 多线程传递参数问题! Combobox的一个问题 动太创建系统类 winform 如何获得当前文件路径 字符串截取问题,谢谢! 用正则提取一个字符串 怎样使用c#语言在指定的电脑路径生成xml文档? 求c#的文件和目录浏览的代码 关于list<>的问题
是不是应该先将数据取出放到数据源中(DataTable)
然后绑定不就可以了。
你还管他列在哪里干吗
{
string timeFlag = DateTime.Now.ToFileTime().ToString();
string dirStr = path + DateTime.Now.ToFileTime().ToString();
System.IO.Directory.CreateDirectory(dirStr);
int fileNum = 1;
//不通过OLE生成excel文件的方法
for (int index = 0; index < list.Count; index++)
{
ProblemCodeExcel excel = new ProblemCodeExcel(GenFileName(dirStr + "\\"));
excel.BeginWrite();
excel.WriteHeader();
Console.WriteLine("正在生成第" + fileNum.ToString() + "个文档.....");
for (ushort row = 1; row < ushort.MaxValue && index < list.Count; row++, index++)
{
if (list[index] != null)
{
excel.WriteString(row, 0, list[index].CreateDate);
excel.WriteString(row, 1, list[index].CaseId);
excel.WriteString(row, 2, list[index].Country);
excel.WriteString(row, 3, list[index].Datasource);
excel.WriteString(row, 4, list[index].Engineer);
excel.WriteString(row, 5, list[index].Model);
excel.WriteString(row, 6, list[index].Problem);
excel.WriteString(row, 7, list[index].ProblemCode);
excel.WriteString(row, 8, list[index].ProblemDesc);
excel.WriteString(row, 9, list[index].ProblemType);
excel.WriteString(row, 10, list[index].ProblemTypeDesc);
excel.WriteString(row, 11, list[index].ProductType);
excel.WriteString(row, 12, list[index].Reply);
excel.WriteString(row, 13, list[index].Series);
excel.WriteString(row, 14, list[index].Server);
excel.WriteString(row, 15, list[index].Subject);
excel.WriteString(row, 16, list[index].SubSeries);
}
else
break; }
Console.WriteLine("生成成功!");
excel.EndWrite();
index--;
fileNum++;
} ZipDAO dao = new ZipDAO(dirStr);
dao.ZipFold();
DeleteFile(dirStr);
Console.WriteLine("处理完毕");
Thread.Sleep(1000);
return virtualPath + timeFlag + ".rar";
}
public class ExcelWriter
{
System.IO.FileStream _wirter;
public ExcelWriter(string strPath)
{
_wirter = new System.IO.FileStream(strPath, System.IO.FileMode.OpenOrCreate);
}
/// <summary>
/// 写入short数组
/// </summary>
/// <param name="values"></param>
private void _writeFile(ushort[] values)
{
foreach (ushort v in values)
{
byte[] b = System.BitConverter.GetBytes(v);
_wirter.Write(b, 0, b.Length);
}
}
/// <summary>
/// 写文件头
/// </summary>
public void BeginWrite()
{
_writeFile(new ushort[] { 0x809, 8, 0, 0x10, 0, 0 });
}
/// <summary>
/// 写文件尾
/// </summary>
public void EndWrite()
{
_writeFile(new ushort[] { 0xa, 0 });
_wirter.Close();
}
/// <summary>
/// 写一个数字到单元格x,y
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="value"></param>
public void WriteNumber(ushort x, ushort y, double value)
{
_writeFile(new ushort[] { 0x203, 14, x, y, 0 });
byte[] b = System.BitConverter.GetBytes(value);
_wirter.Write(b, 0, b.Length);
}
/// <summary>
/// 写一个字符到单元格x,y
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="value"></param>
public void WriteString(ushort x, ushort y, string value)
{
byte[] b = System.Text.Encoding.UTF8.GetBytes(value);
_writeFile(new ushort[] { 0x204, (ushort)(b.Length + 8), x, y, 0, (ushort)b.Length });
_wirter.Write(b, 0, b.Length);
}
}