-1

我们定期以 html 文件的形式获取一组 SQL 查询输出。所以,基本上,这个 html 文件包含一组表格形式的 SQL 输出,我可以右键单击并在 MS Excel 中打开它。

我基本上是在尝试在 Excel 中加载 html 并将所有输出放在不同的工作表中(每个 SQL 输出一个),而不是每次都右键单击。

我对 Excel 很陌生,不知道如何实现这一点。

你能指点我如何实现这一目标吗?

非常感谢

4

2 回答 2

0

我建议使用 Excel 网络查询:请参阅http://www.techrepublic.com/article/pull-data-into-microsoft-excel-with-web-queries/或在 Google 上搜索 excel 网络查询。您可以提供一个 URL,例如 file://C:\somefolder\somehtmlfile.html 您可以在此处找到有关如何有问题地创建和刷新 Web 查询的更多信息:http: //msdn.microsoft.com/en-us/ library/office/aa203721(v=office.11​​).aspx 更好的选择是将数据直接提取到 Excel 中,假设使用电子表格的任何人都具有对相关数据库表的读取权限。

于 2013-07-22T14:35:05.623 回答
0

如果您打算将其作为自动化来执行,则可以使用 C#。您实际获取网站并将网页中的内容复制到 C# 中的变量中,然后从 C# 中将其粘贴到您选择的位置。因此,我们使用剪贴板作为助手,它允许将内容复制到剪贴板,这实际上将任何 html 表格转换为 Excel 表格。

Microsoft.Office.Interop.Excel.Application excel = null;
Microsoft.Office.Interop.Excel.Workbook xls = null;

Excel.Workbook workbook;
workbook = xlsApp.Workbooks.Open("Your excel file.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing);
foreach (Excel.Worksheet sheet in workbook.Sheets)
{
      if(sheet.Name.Equals("Which worksheet you want to map"))
      /// the table is converted to html table in clipboard
      string html = Clipboard.GetText(TextDataFormat.Html); // you actually can give him the HTML code of the table too
      // TextDataFormat.Html can be anyy html code
      File.WriteAllText(temporaryFilePath, html);
      Clipboard.SetText(html);
      sheet.Range(cellmapp).PasteSpecial();
      sheet.Columns.AutoFit();
      sheet.Rows.AutoFit();
}

现在,如果您从代码中编写一个简单的.exe可执行程序,您甚至可以安排它每天自动执行。这是用 完成的Microsoft.Office.Interop,但它是一个中间解决方案,但可能不是最好的使用。

于 2013-07-22T15:12:11.660 回答