我有以下代码 -
private void button1_Click(object sender, EventArgs e)
{
string csv = File.ReadAllText("FilePath");
WebService.function res = new WebService.function();
XDocument doc = ConvertCsvToXML(csv, new[] { "," });
我想知道如何调整代码以便它不仅可以读取.csv文件而且还可以读取.xls文件?
我创建了一个公共XDocument来执行此操作 -
public XDocument ConvertCsvToXML(string csvString, string[] separatorField)
{
var sep = new[] { "\n" };
string[] rows = csvString.Split(sep, StringSplitOptions.RemoveEmptyEntries);
var xsurvey = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"));
var xroot = new XElement("details");
答案 0 :(得分:2)
如果我正确理解您的问题,您希望以与解析csv文件相同的方式将excel文件解析为文本。虽然这是可行的,但您应该考虑使用 Office Interop 接口来执行此操作。如果要解析原始文件,则需要考虑Office版本与大量编码/序列化任务之间的不同格式;不小的任务。
以下是一些可以帮助您入门的资源:
答案 1 :(得分:1)
我不确定你的问题...但如果你问如何在c#中读取excel文件,这将有效:
string fileName = [insert path and name];
string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;data source={0}; Extended Properties=Excel 8.0;", fileName); // Create the data adapter pointing to the spreadsheet
var oa = new OleDbDataAdapter("SELECT * FROM [xxx$]", connectionString); // xxx is tab name
// Create a blank data set
var ds = new DataSet(); // Fill the data set using the adapter
oa.Fill(ds, "table1"); // Create a data table from the data set
DataTable dt1 = ds.Tables["table1"];
foreach (DataRow dr in dt1.Rows)
{
...
}